特殊文件夹常量的本地化

Localization of Special Folder Constants

有谁知道是否有 Windows 10 个本地化文件夹的完整列表(例如 this one 仅适用于所有文件夹)? 我正在尝试创建一个自定义资源管理器,其中文件夹应以用户的母语显示。

我已经尝试使用 ShellSpecialFolderConstants enumeration or the Environment.SpecialFolder enumeration 获取本地化文件夹的完整列表。 但仍有一些缺失(例如 C:/Users)。

不幸的是,

SHGetFileInfo 也是不可能的,否则性能会受到很大影响。

我想简单地为它设计一个长选择语句,其中存储所有本地化文件夹。 如果已经有 table 个等价物,那么知道起来当然会很方便。

提前致谢!

Microsoft 不提供列表,因为您不应该知道,您应该使用 special/known 文件夹 API。这是为了防止人们对 c:\Program files 等进行硬编码。在 Windows 的旧版本中,磁盘上的文件夹通常是本地化的。在 Vista 中,这发生了变化,现在真实姓名是英文。

如果您正在构建自定义资源管理器,那么您应该处理 IShellFolder/IShellItem,他们可以提供显示名称。

如果您在较低级别工作并忽略 shell 命名空间,您可以调用 SHGetLocalizedName。此名称可应用于任何文件夹,而不仅仅是特殊文件夹。

如果您出于某种原因只关心特殊文件夹而不关心一般路径,IKnownFolder::GetFolderDefinition 声称 return 包含本地化名称的结构。