SpecialFolder.Desktop和SpecialFolder.DesktopDirectory有什么区别?

Onl*_*ere 41 .net c# desktop special-folders

我对这两个特殊文件夹之间的差异感到困惑.

这是一个代码片段,用于编写每个输出,但它们输出相同的内容.

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

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

Console.ReadKey();
Run Code Online (Sandbox Code Playgroud)

根据MSDN文档(适用于.NET 1.1):

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

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

这说the logical Desktop rather than the physical file system location什么意思?另外,virtual folder简单来说是什么?

在较新的.NET 4版本的文档中,我注意到他们删除了Desktop完全和唯一的左侧DesktopDirectory.为什么是这样?

Dav*_*nan 27

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

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

  • 如何配置windows以使两个C#字符串显示不同的结果? (2认同)
  • 我测试了C#代码,两个枚举都返回相同的值,如果它们从不不同,那么说两个枚举的区别是没有用的。所以我的问题是在什么情况下两个枚举返回不同的路径? (2认同)
  • 答案解决了提出的两个具体问题。它不会试图解决您提出的问题。如果您查看与两个 .net 特殊文件夹值对应的两个 CSIDL 枚举值,您将看到它们映射到相同的已知文件夹 guid。这向我表明,在旧版本的 Windows 中存在差异,但已经发生了变化。请参阅此处 https://msdn.microsoft.com/en-us/library/windows/desktop/bb762494.aspx (2认同)