Невозможно записать AppedText в файл - PullRequest
2 голосов
/ 20 июня 2019

Мне нужно создать файл и записать каждое исключение в файл. Я использую приведенный ниже код, чтобы сделать это.

File.Create(filePath);
File.AppendText("Exception Detail Start-------------------------------------------");
File.AppendText("Stack Trace :" + ex.StackTrace );
File.AppendText("Error :" + ex.Message );
File.AppendText("Exception Detail End-------------------------------------------");

Но я получаю следующую ошибку:

Additional information: Access to the path 'C:\Program Files (x86)\IIS Express\Exception Detail Start-------------------------------------------' is denied`

Ответы [ 3 ]

2 голосов
/ 20 июня 2019

Вы не пишете в файл, который создали.

FileStream writer = File.Create(filePath);
writer.AppendText("Exception Detail Start-------------------------------------------");
writer.AppendText("Stack Trace :" + ex.StackTrace );
writer.AppendText("Error :" + ex.Message );
writer.AppendText("Exception Detail End-------------------------------------------");

Это должно работать.

1 голос
/ 20 июня 2019

File.AppendText берет путь к файлу и возвращает StreamWriter. Таким образом, в вашем случае вы передаете сообщение об исключении в качестве пути к файлу, и, следовательно, файл не найден (он ищет файл в текущем каталоге с именем «Exception Detail Start» ------------ ------------------------------- ").

В вашем случае вы можете использовать File.AppendAllText .

Открывает файл, добавляет к нему указанную строку, а затем закрывает файл Если файл не существует, этот метод создает file, записывает указанную строку в файл, затем закрывает файл.

Или File.AppendAllLines .

Добавляет строки в файл, а затем закрывает файл. Если указано файл не существует, этот метод создает файл, записывает указанный строк в файл, а затем закрывает файл.

* * Пример тысяча двадцать-один: * * 1 022
File.AppendAllLines(filePath, new string[] { 
    "Exception Detail Start-------------------------------------------",
    "Stack Trace :" + ex.StackTrace, 
    "Error :" + ex.Message, 
    "Exception Detail End-------------------------------------------" 
});
0 голосов
/ 20 июня 2019

Ваш путь к C \ program files (x86) обычно требует административного права на запись файлов. Попробуйте запустить приложение от имени администратора. (Либо запустите Visual Studio от имени администратора и запустите ваш проект)

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

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