Piszę drobną aplikację w Javie, ale przydałoby mi się znać nazwy folderów w katalogu domowym użytkownika, tzn. muszę nauczyć moją aplikację rozróżniać, że jeśli nie jest odpalana na angielskiej wersji windowsa, a na przykład polskiej, to zamiast folderu Documents powinna szukać Dokumenty, jeśli na francuskiej to jeszcze inaczej…
No i skąd mogę wytrzasnąć te nazwy? Czy istnieje do tego jakaś specjalna zmienna środowiskowa? A może jakiś wpis w rejestrze?
Lista zmiennych środowiskowych jest między innymi dostępna na wikipedii, jak widzisz jest ścieżka do katalogu domowego użytkownika, ale już nie konkretnych podkatalogów.
Na przykładzie Windowsa 7, nie wiem/nie pamiętam jak to jest w innych:
Zauważ, że przykładowo w katalogu użytkownika widzisz folder “Moje dokumenty”, ale efekt polonizacji to tylko nazwa wyświetlana, ale nie faktyczna nazwa tego katalogu. Rzeczywista nazwa wspomnianego folderu to “Documents”, czyli ścieżka do niego, z wykorzystaniem zmiennej środowiskowej to “%USERPROFILE%\Documents”.
Biorąc pod uwagę fakt, że pisane w Javie programy często próbują operować na nieistniejących katalogach, jest to zapewne powszechnie stosowana metoda. Ale na pewno nie jest prawidłowa, bo nie działa, gdy użytkownik zmieni lokalizację katalogu.
Z tego, co widzę, naprawdę rzeczywista ścieżka do “Moich dokumentów” znajduje się w: “HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\Personal”.