gpt4 book ai didi

c# - SpecialFolder.Desktop 和 SpecialFolder.DesktopDirectory 之间有什么区别?

转载 作者:IT王子 更新时间:2023-10-29 03:57:47 25 4
gpt4 key购买 nike

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

这是一个代码片段,其中写入了每个输出,但它们输出的是相同的东西。

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

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

Console.ReadKey();

根据MSDN文档(for .NET 1.1):

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

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

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

在较新的 .NET 4 版本中 documentation ,我注意到他们完全删除了 Desktop,只留下了 DesktopDirectory。这是为什么?

最佳答案

原始问题的答案

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

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

从评论中提取的其他问题和答案

问题(by Lei Yang)为什么以下总是正确的:

Environment.GetFolderPath(Environment.SpecialFolder.Desktop) == Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory)

回答(来自 David Heffernan ):

答案解决了提出的两个具体问题。它不会尝试解决您提出的问题。如果您查看对应于两个 .net 特殊文件夹值的两个 CSIDL 枚举值,您将看到它们映射到相同的已知文件夹 guid。这向我表明,在旧版本的 Windows 中存在差异,但已经发生了变化。

参见 https://learn.microsoft.com/en-us/windows/win32/shell/csidl

Ctrl+F 用于“FOLDERID_Desktop”

关于c# - SpecialFolder.Desktop 和 SpecialFolder.DesktopDirectory 之间有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5612571/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com