Я пытаюсь создать базовую систему ведения журнала для регистрации каждого вызова класса в файл с именем log.csv
. У меня есть строка с именем logPath
, которая содержит ..\\..\\log.csv
и еще одну строку с именем logData
, которая содержит информацию, которую я хочу записать в файл журнала.Создание файла с использованием оператора if
код у меня до сих пор:
if (!File.Exists(logPath))
{
File.Create(logPath);
StreamWriter writeLog = new StreamWriter(logPath, true);
writeLog.WriteLine(logData);
writeLog.Close();
}
else if (File.Exists(logPath))
{
StreamWriter writeLog = new StreamWriter(logPath, true);
writeLog.WriteLine(logData);
writeLog.Close();
}
Однако, когда я запускаю код и файл журнала не существует, сбой программы, но по-прежнему создает файл log.csv
, однако данные в logData
ISN Не записано в файл. Когда я запускаю программу еще раз, потому что файл существует, у него нет проблем писать каждый вызов класса. Когда программа вылетает при создании файла, она выдает IOException
, утверждая, что файл используется другим процессом.
что вы имеете в виду 'crashes'? есть ли какое-либо исключение? оберните свой код в блок try-catch и отлаживайте catch, чтобы увидеть исключение. – ieaglle
Похоже на антивирус –
BTW: код не следует принципу чистого кода DRY (не повторяйте). Кроме того, 'if' в' else' всегда должно быть истинным (за исключением того, что кто-то удалил файл между этими двумя проверками). –