Я использую этот фрагмент кода для записи (добавления) текста в файл журнала в моем приложении WPF. Путь к файлу по умолчанию находится внутри Program Files. Если я запускаю приложение как обычный пользователь, файл не записывается (или не создается), но исключение разрешений не возникает, несмотря на оператор try-catch
. Если пользователь указывает несистемную папку для файлов журнала (что можно сделать во время выполнения), все работает. Если приложение запускается от имени администратора, все работает даже с папкой по умолчанию (системная). Это явно проблема с разрешениями. Я не понимаю, почему этот код не вызывает исключения, если пользователь не является администратором и пытается создавать / записывать файлы в системной папке. В таком случае File.AppendText
должно повысить UnauthorizedAccessException
, не так ли? В чем здесь проблема?
try
{
using (StreamWriter w = File.AppendText(path))
{
w.WriteLine(line.ToString());
}
}
catch (Exception ex)
{
var message = $"{path}\n{ex.Message}";
MessageBox.Show(message, "Log File Error", MessageBoxButton.OK, MessageBoxImage.Error);
}
ОС: Windows 10
Net Версия фреймворка 4