簡體   English   中英

獲取本地化路徑的功能?

[英]Function for getting localized path?

Windows 7(可能還有Windows Vista)使用desktop.ini文件中的LocalizedResourceName條目顯示本地化的文件夾名稱。 對於我的Documents文件夾,這看起來像

[.ShellClassInfo]
LocalizedResourceName=@%SystemRoot%\system32\shell32.dll,-21770
IconResource=%SystemRoot%\system32\imageres.dll,-112
IconFile=%SystemRoot%\system32\shell32.dll
IconIndex=-235

(見這個問題)

這樣,資源管理器在德語Windows上將路徑“C:\\ Users \\ Username \\ Documents”顯示為“C:\\ Benutzer \\ Username \\ Dokumente”。

我想知道,如果有任何內置shell函數來自動獲取這個本地化名稱,或者更好的是,將整個路徑轉換為其本地化形式(最好是.NET中的任何內容)?

這更有趣,因為LocalizedResourceName條目僅針對Windows CE進行了記錄(請參閱此處 )。

謝謝

馬丁

SHGetLocalizedName ()。 Michael Kaplan的博客上有一個PInvoke示例。

我很確定沒有將路徑轉換為其本地化形式的功能,因為當你看到更大的圖片時它沒有意義。 如果您有漫游配置文件,甚至可能沒有“用戶”或“Benutzer”文件夾,因為它將全部位於服務器管理員放置的位置。

它還引出了如何調用此函數的問題。 為了論證,我們只假設您使用美國英語默認值來調用它。 如果你說“給我c:\\ Users \\ Bob的德語本地化版本”,Vista和Windows 7就可以了,但XP不知道“Users”文件夾。 因此,如果沒有您無法保證安裝的向后補丁,則會破壞。

通常微軟建議甚至不要擔心路徑的左半部分。 相反,您應該使用Environment.GetFolderPath()並將其傳遞給SpecialFolder枚舉之一。 特殊文件夾部分之后的任何內容都是您定義和創建的,但就是這樣。 您的代碼應該說,“相對於桌面創建一個名為Bob的文件夾”。 無論解決了什么,都不應該存儲,因為有朝一日可能會改變這條路徑,

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM