У меня есть приложение на C #, и мне нужно вывести некоторые данные в файл журнала во время работы.Я хочу дать пользователю возможность указать, где найти файл журнала, но по запросу клиента необходимо по умолчанию указать текущее местоположение приложения, которое обычно / Program Files /.
При развертывании моегоприложение на компьютере с Win7 / Vista, однако, приложение не записывает файл журнала, если я не запускаю программу от имени администратора.В то же время, кажется, что он молча обрабатывает случай, когда он не может записать файл, так как в настоящее время я обрабатываю все исключения, возникающие в процессе создания и записи файла.
В настоящее время я пытаюсь обнаружить отсутствие разрешения на запись обоими способами:
A) Создание объекта DirectorySecurity путем вызова «Directory.GetAccessControl ()» и
B) Проверкапривилегии безопасности с помощью метода «SecurityManager.IsGranted (permissions)»,
, но A не выдает исключение, когда я этого ожидаю, и B каждый раз возвращает true.
Я видел множествосообщения, связанные с этой темой, но все они дают решение просто писать в Application.UserAppDataFolder или какой-то другой вариант.Мой клиент специально попросил по умолчанию использовать текущий путь к приложению, поэтому мне нужно, по крайней мере, найти способ изящно предупредить их, когда запись файла журнала приведет к сбою.
Примечание. Мой текущий код работает в Windows XP (так как UAC, я полагаю, отсутствует).В основном все, что мне нужно знать, это то, почему все мои звонки говорят мне, что запись файла идет хорошо, когда файл вообще не создается, если я не работаю от имени администратора.
Спасибо!