0

ドイツ語のオペレーティング システムを使用しており、フォルダーのパスを取得する必要があります。Windows 7 では、「ドキュメント」の表示名は「Dokumente」です。しかし、私が次のような道をたどると

string path = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)

私は得るC:\\Users\\Username\\Documents\\ が、私は必要ですC:\\Benutzer\\Username\\Dokumente\\

ローカライズされたパスを取得する方法はありますか?

4

2 に答える 2

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();
    }
于 2012-10-17T11:40:52.963 に答える
0

システムでは実際には「ドキュメント」と呼ばれていることがわかります。「Dokuments」パスは、実際にはエクスプローラーにのみ表示されます(このローカライズされた名前はdesktop.iniファイルで参照されます)。したがって、Environment.GetFolderPath返されるパスは実際には正しく、使用可能です。プロファイルディレクトリ内で開いてcmd実行すると、「実際の」名前を確認できます。dir /a

于 2012-10-02T06:53:12.380 に答える