С помощью переменной среды %allusersprofile% я могу получить каталог, в котором хранятся общие настройки. Но большинство программ хранят свои настройки в подпапке «anwendungsdaten» (нем. «данные приложения»). Есть ли способ получить прямой путь к этой папке? Проблема в том, что его имя зависит от языка. Спасибо.
Каталог данных приложения Windows
Ответы:
Не уверен, какой язык программирования вы используете, поэтому я предполагаю базовый Windows API. В XP вы можете вызвать SHGetFolderPath с CSIDL_COMMON_APPDATA как параметр. Похоже, что в Vista и 7 появился новый набор функций, которые делают то же самое, вы, вероятно, захотите вызвать SHGetKnownFolderPath.
В Windows Forms можно используйте свойство Application.UserAppDataPath.
Я не вижу никакого прямого способа получить эту информацию напрямую. Если больше ничего не приходит в голову, единственное, что приходит на ум, это какой-то хак, который, вероятно, сработает в 99% всех случаев:
Возьми
%USERPROFILE%
Возьми
%APPDATA%
Возьмите
%APPDATA%
и замените%USERPROFILE%
на ноль. «Остальное» должно быть «/ Данные приложения» или «/ Anwendungsdaten» или что-то ещеВозьми
%ALLUSERSPROFILE%
Добавьте к нему результат шага 3.
Вы должны получить правильный локализованный путь к каталогу «Appdata» профиля «Все пользователи».
Примечание. Это не проверено, и у меня мало опыта в этой области. Но это может сработать.
Я не знаю никакого прямого способа получить его, но если вас беспокоит язык, вы можете взять конец %APPDATA%, от последнего символа '\' до конца строки, и добавить его к %allusersprofile %.