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中存在差异,但这已经改变了。看这里,谢谢!因此,这可能是微软创建这两个枚举的历史原因。