C#从环境获取本地化路径

时间:2012-10-02 06:03:08

标签: c# path

我有一个德语操作系统,我需要获取文件夹的路径。在Windows 7中,“Documents”的显示名称是“Dokumente”。但是,如果我采取像

这样的道路
string path = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)

我得C:\\Users\\Username\\Documents\\ 但我需要C:\\Benutzer\\Username\\Dokumente\\

知道如何获得本地化路径吗?

2 个答案:

答案 0 :(得分:1)

也许:

[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();
    }

答案 1 :(得分:0)

您会发现它实际上在您的系统上称为“文档”。 “Dokuments”路径实际上只显示在资源管理器中(此desktop.ini文件中引用了本地化名称)。因此Environment.GetFolderPath返回的路径实际上是正确且可用的。您可以在个人资料目录中打开cmd并运行dir /a来查看“真实”名称。