Environment.SpecialFolder.CommonApplicationData возвращает папку Program Files/AppC#

Место общения программистов C#
Ответить
Anonymous
 Environment.SpecialFolder.CommonApplicationData возвращает папку Program Files/App

Сообщение Anonymous »

Я разработал приложение WPF (.NET 4.5), которое хранит некоторые файлы конфигурации в папке CommonApplicationData.
Для этой цели я использую следующее:

Код: Выделить всё

string AppDataFolder = Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData);
Кроме того, я добавляю Название компании/Папку продукта к этому пути, и в 99,9% все работает. Приложение умеет писать туда конфиг и читать его. Приложение в основном используется на компьютерах Win7 и Win8, но я получил отчет от клиента о том, что на одном компьютере возникли некоторые ошибки (Windows 7 Pro, .NET 4.5).
Когда я попытался отладить проблему, я обнаружил в журнале следующее:

System.IO.DirectoryNotFoundException: не удалось найти часть пути «C:\Program Files» (x86)\CompanyName\App\X\Y\Z\settings.config'.

Где:

X\Y\Z\settings.config

должно быть частью C:\ProgramData, но почему-то приложение возвращает папку, в которой установлено приложение (Программные файлы). Я пытался повторить это на нескольких машинах и в разных средах, но безуспешно.
Мои вопросы:
Можно ли изменить

Код: Выделить всё

Environment.SpecialFolder.CommonApplicationData
[/b] местоположение в Windows? Это какая-то проблема безопасности (групповая политика)? Возможно, кто-то каким-то образом изменил путь.
Я не знаю, почему приложение в этом случае возвращает другую папку, чем C:\ProgramData.
Если возможно, где я могу проверить значение Environment.SpecialFolder.CommonApplicationData, кроме как программно?
Любые советы или решения?
Я всегда могу сделать некоторые проверки и попытаться посмотрите, неправильный ли путь, чем исправьте его вручную, но это не очень хорошо!
Я всегда думал, что использование Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData) даст мне правильную папку независимо от версии ОС.
Я пробовал запустить приложение с полными правами администратора (плюс запускать от имени администратора), проблема та же. Приложение получает неправильный путь от Environment.SpecialFolder.CommonApplicationData.
Заранее спасибо!

Подробнее здесь: https://stackoverflow.com/questions/309 ... s-app-fold
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»