特殊文件夹常量的本地化
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 包含本地化名称的结构。
有谁知道是否有 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 包含本地化名称的结构。