我有一个德语操作系统,我需要获取文件夹的路径。在 Windows 7 中,“文档”的显示名称为“Dokumente”。但如果我走这条路
string path = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)
我得到C:\\Users\\Username\\Documents\\
但我需要C:\\Benutzer\\Username\\Dokumente\\
知道如何获得本地化路径吗?
也许:
[DllImport("shell32.dll")]
static extern int SHGetFolderPath(
IntPtr hwndOwner,
int nFolder,
IntPtr hToken,
uint dwFlags,
[Out] StringBuilder pszPath
);
public static string GetLocalizedPath(Environment.SpecialFolder folder)
{
var builder = new StringBuilder();
SHGetFolderPath(IntPtr.Zero, (int)folder, IntPtr.Zero, 0x0000, builder);
return builder.ToString();
}
您会发现它在您的系统上实际上被称为“文档”。“Dokuments”路径实际上只显示在资源管理器中(desktop.ini
文件中引用了这个本地化名称)。所以Environment.GetFolderPath
返回的路径实际上是正确且可用的。您可以通过在您的配置文件目录中打开cmd
并运行来查看“真实”名称。dir /a