2011-01-14 35 views
5

Windows 7 (ve büyük olasılıkla Windows Vista), desktop.ini dosyasındaki LocalizedResourceName girdisini kullanarak yerelleştirilmiş klasör adlarını görüntüler. Benim Documents klasör için, buYerelleştirilmiş yol almak için işlev?

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

(this soruya bakın) benziyor

kaşif yolunu görüntüler Bu şekilde: C" olarak "C \ Users \ Kullanıcı Adı \ Belgeler": \ Benutzer \ Kullanıcı Adı \ Dokumente "Alman bir Windows'da.

Bu yerelleştirilmiş adı otomatik olarak alacak herhangi bir yerleşik kabuk işlevi varsa veya daha da iyisi, tüm yolu yerelleştirilmiş biçimine dönüştürürsek (.NET'te en iyisi olur) acaba?

Bu, LocalizedResourceName girişinin yalnızca Windows CE (bkz. here) için belgelendiği gibi daha da ilginçtir.

Teşekkür

Martin

cevap

0

ben büyük resmi gördüğünüzde o mantıklı değil, çünkü onun lokalize forma bir yolu dönüştürmek için bir işlev yoktur eminim. Bir dolaşım profiliniz varsa, her ne zaman sunucu yöneticisinin koyduğu her yerde olacağı için "Kullanıcılar" veya "Benutzer" klasörü bile olmayabilir.

Ayrıca bu işlevi nasıl çağırdığınız sorusu da yalvarır. Tartışma uğruna, bunu yalnızca ABD İngilizcesi varsayılanlarıyla çağırdığınızı varsayacağız. "Bana c: \ Users \ Bob'un yerelleştirilmiş sürümünü ver" derseniz, Vista ve Windows 7 bununla iyi olacaktır, ancak XP "Kullanıcılar" klasörü hakkında bilgi sahibi değildir. Böylece bu, garanti edilemeyecek bir yama olmadan kırılacaktı. Genelde Microsoft, bir yolun sol yarısı hakkında endişe etmemenizi önerir. Bunun yerine, Environment.GetFolderPath()'u kullanmanız ve SpecialFolder numaralandırmalarından birini geçirmeniz gerekiyor. Özel klasör bölümünden sonra herhangi bir şey tanımlamak ve oluşturmak sizin için ama bu kadar. Kodunuz, "masaüstüne göre" Bob adlı bir klasör oluştur "yazmalıdır. Ne olursa olsun, bu yolun bir gün,

+0

Sanırım, sorumu yanlış anladınız (muhtemelen benim hatam): "GetFolderPath" sonucunu (tabii ki kullanıyorum) kullanıcıma gösterirsem, kafan karışır, çünkü bu işlev "C:/Kullanıcı/İsim/Belgeler "(hatta Alman sistemlerinde bile)" kaşifinde "C:/Benutzer/Name/Dokumente" yazıyor. Bu otomatik yerelleştirme, desktop.ini dosyasındaki girişleri kullanarak kabuk tarafından yapılır ve bunu kendim yapmak için bazı araçlar istedim. – MartinStettner