Вопрос: Использование Windows 7, исключение неавторизованного доступа при запуске моего приложения - PullRequest
5 голосов
/ 04 марта 2010

Мое приложение вызывает ошибку несанкционированного доступа. Во время работы приложения я пытаюсь получить доступ к каталогу в следующем месте: Application.UserAppDataPath.

Проблема: говорится, что у меня нет разрешения на доступ к каталогу Application.UserAppDataPath

Есть ли способ установить разрешения в исходном коде моего приложения?

Что-то вроде:

Application.UserAppDataPath.SetPermissions()

Ответы [ 2 ]

12 голосов
/ 04 марта 2010

Глядя на свой комментарий, вы говорите, что это ваш код:

StreamReader sr = new StreamReader(Application.UserAppDataPath);

Application.UserAppDataPath - это каталог , а не файл . Если вы попытаетесь открыть это напрямую, это то же самое, что попытаться открыть файл на один уровень ниже папки AppData, на что у вас действительно нет разрешения.

Используйте Path.Combine для построения пути к файлу внутри папки AppData, т.е.

string fileName = Path.Combine(Application.UserAppDataPath, "settings.xml");
StreamReader sr = new StreamReader(fileName);

Конечно, это только пример - в действительности вам, вероятно, следует использовать подпапку внутри AppData, специфичную для вашего приложения.

2 голосов
/ 04 марта 2010

Вероятно, это проблема UAC. Попробуйте запустить приложение как процесс с повышенными правами и посмотрите, сохраняется ли ошибка

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...