Для этой цели я использую следующее:
Код: Выделить всё
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