Процесс не может получить доступ к файлу «каталог файл», потому что он используется другим процессом в писателе C # файла C #

StackOverflow https://stackoverflow.com/questions/4112674

Вопрос

Я получаю эту ошибку, когда я пытаюсь сохранить существующий файл:

Процесс не может получить доступ к файлу, потому что он используется другим процессом

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

Вот код:

string directory = filepath + "Updates\\" + dir;
if(!Directory.Exists(directory))
{
    Directory.CreateDirectory(directory);
}
remarks = remarks.Trim();
remarks = remarks.Replace("\r\n","<br>");
remarks = remarks.Replace(",","|");
string file = directory + "\\" +  getIndex(barcode) + ".asdt";
StreamWriter writer = new StreamWriter(file,true);
writer.WriteLine(username + "," + barcode + "," + DateTime.Now.ToString("yyyy-MM-dd HH.mm")+ "," + remarks);
writer.Close();

Когда я проверил его, ошибка возникает на линии:

StreamWriter writer = new StreamWriter(file,true);

Что может быть причиной этого?

Это было полезно?

Решение

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

Использовать using Заявление для обеспечения надлежащего утилизации:

using(StreamWriter writer = new StreamWriter(file,true))
{
    writer.WriteLine(username + "," + barcode + "," + DateTime.Now.ToString("yyyy-MM-dd HH.mm")+ "," + remarks);
    writer.Close();
}

Другие советы

Или вы можете аннулировать объект писателя после закрытия.

попробуй использовать writer.Flush(); до writer.Close();

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top