Для этой цели я использую следующее:
Код: Выделить всё
string AppDataFolder = Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData);
Когда я попытался отладить проблему, я обнаружил в журнале следующее:
System.IO.DirectoryNotFoundException: не удалось найти часть пути «C:\Program Files» (x86)\CompanyName\App\X\Y\Z\settings.config'.
Где:
X\Y\Z\settings.config
должно быть частью C:\ProgramData, но почему-то приложение возвращает папку, в которой установлено приложение (Программные файлы). Я пытался повторить это на нескольких машинах и в разных средах, но безуспешно.
Мои вопросы:
Можно ли изменить
Код: Выделить всё
Environment.SpecialFolder.CommonApplicationDataЯ не знаю, почему приложение в этом случае возвращает другую папку, чем C:\ProgramData.
Если возможно, где я могу проверить значение Environment.SpecialFolder.CommonApplicationData, кроме как программно?
Любые советы или решения?
Я всегда могу сделать некоторые проверки и попытаться посмотрите, неправильный ли путь, чем исправьте его вручную, но это не очень хорошо!
Я всегда думал, что использование Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData) даст мне правильную папку независимо от версии ОС.
Я пробовал запустить приложение с полными правами администратора (плюс запускать от имени администратора), проблема та же. Приложение получает неправильный путь от Environment.SpecialFolder.CommonApplicationData.
Заранее спасибо!
Подробнее здесь: https://stackoverflow.com/questions/309 ... s-app-fold
Мобильная версия