File.AppendAllText создает исключение FileNotFoundException - PullRequest
0 голосов
/ 31 марта 2020

Я работаю над надстройкой Inte rnet Explorer, я написал dll, который прикреплен к браузеру, У меня есть событие, внутри которого я пишу в какой-то текстовый файл с File.AppendAllText, это выдает FileNotFoundException Я использую AppendAllText в других местах моего кода, и там, если файл не существует, он создает новый файл, мой вопрос, почему это исключение выбрасывается и как я могу избежать этого.

У меня есть нашел этот ответ, но в нем не сказано, как избежать ошибки (т.е. записать файл без получения этого исключения), также не понял, что это «ошибка документации»

Здесь файл fath:

static string assem = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
static string logPath = Path.Combine(assem, "Log.log");

Здесь строка, которая выдаёт ошибку:

File.AppendAllText(logPath, "some text" + Environment.NewLine);

Здесь исключение:

enter image description here

Ответы [ 2 ]

1 голос
/ 01 апреля 2020

Возможно IE блокирует расширение для записи в локальный файл, попробуйте снять флажок «Защищенный режим» в браузере

Сервис -> Inte rnet Параметры -> Безопасность -> разблокировать "Включить защищенный режим"

0 голосов
/ 31 марта 2020

Тип исключения немного вводит в заблуждение; в некотором смысле, было бы лучше бросить ArgumentException, возможно. Причина, по которой вы видите это исключение, заключается в том, что указанный вами путь не является допустимым путем к файлу (либо он содержит недопустимый символ, либо> 255 символов).

Проверьте значение пути в этой точке в коде в отладчике откройте командную строку и введите следующую команду, чтобы посмотреть, сможете ли вы записать по этому пути:

echo "Testing creating a file at this path" > "C:\Path\To\Your\File.txt"

Ускорю предположение, что путь содержит каталог, который выполняет не существует (например, ваш путь C:\Path\To\Your\File.txt, но каталог Path не содержит подкаталог To).

...