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

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

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

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

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

Application.UserAppDataPath.SetPermissions()

2 ответа

Решение

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

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, специфичную для вашего приложения.

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

Другие вопросы по тегам