Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/258.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/388.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 什么';SpecialFolder.Desktop和SpecialFolder.DesktopDirectory之间的区别是什么?_C#_.net_Desktop_Special Folders - Fatal编程技术网

C# 什么';SpecialFolder.Desktop和SpecialFolder.DesktopDirectory之间的区别是什么?

C# 什么';SpecialFolder.Desktop和SpecialFolder.DesktopDirectory之间的区别是什么?,c#,.net,desktop,special-folders,C#,.net,Desktop,Special Folders,我对这两个特殊文件夹之间的区别感到困惑 下面是一个代码片段,它写入了每个的输出,但它们输出的是相同的内容 string path = Environment.GetFolderPath(Environment.SpecialFolder.Desktop); string pathTwo = Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory); Console.WriteLine(path); Console

我对这两个特殊文件夹之间的区别感到困惑

下面是一个代码片段,它写入了每个的输出,但它们输出的是相同的内容

string path = Environment.GetFolderPath(Environment.SpecialFolder.Desktop);
string pathTwo = Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory);

Console.WriteLine(path);
Console.WriteLine(pathTwo);

Console.ReadKey();
根据文档(对于.NET 1.1):

桌面
逻辑桌面而不是物理文件系统位置

桌面目录
用于在桌面上物理存储文件对象的目录。不要将此目录与桌面文件夹本身混淆,桌面文件夹本身是一个虚拟文件夹

当它说的是逻辑桌面而不是物理文件系统位置时,它意味着什么?另外,简单来说,
虚拟文件夹是什么

在较新的.NET4版本中,我注意到他们完全删除了
桌面
,只剩下
桌面目录

为什么会这样?

目录是文件系统中的一个位置。文件夹是shell命名空间中的一个位置。目录是一种文件夹。虚拟文件夹不一定由目录支持。例如,考虑库或搜索文件夹。


用户的桌面目录是文件系统中的一个位置。桌面文件夹将其与虚拟项目(如所有用户项目、回收站、文档文件夹快捷方式等)合并。

真正的答案是,这些项目可能不同,尤其是服务器上的宽度配置文件。 用户可能正在通过文件共享运行桌面,或者在本地系统上运行桌面。。。 如果重定向,操作系统通常不会通知其他软件它已经这样做了。
但是如果你真的想达到这个目的…

如何配置windows,使两个C#字符串显示不同的结果?我不明白这个问题我测试了C#代码,两个枚举返回相同的值,如果它们从来都不不同,那么说两个枚举的差异是没有用的。那么我的问题是在什么情况下这两个枚举返回不同的路径呢?答案解决了两个特定的问题。它不会试图解决您提出的问题。如果查看与两个.net特殊文件夹值相对应的两个CSIDL枚举值,您将看到它们映射到相同的已知文件夹guid。这对我来说意味着,在旧版本的Windows中存在差异,但这已经改变了。看这里,谢谢!因此,这可能是微软创建这两个枚举的历史原因。