Der Prozess kann nicht auf die Datei zugreifen ‚Verzeichnis \ Datei‘, weil sie von einem anderen Prozess in C # File Writer verwendet wird

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

Frage

Ich erhalte diese Störung, wenn ich jemals auf die vorhandene Datei zu speichern versuchen:

  

kann der Prozess nicht auf die Datei zugreifen, da sie von einem anderen Prozess verwendet wird

Es funktioniert, wenn eine Datei nicht existiert, aber wenn ich versuche, in ihm wieder die Fehler zeigen aufzuschreiben. Ich bin nicht zugreifen oder die Datei, die Zeit verwendet wird.

Hier ist der Code:

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();

Wenn ich es überprüft der Fehler auftritt, auf der Linie:

StreamWriter writer = new StreamWriter(file,true);

, was die Ursache dafür sein könnte?

War es hilfreich?

Lösung

Ihr Programm wird wahrscheinlich richtig der Datei-Stream nicht entsorgen, halten Sie die Datei zu öffnen.

Mit der using Anweisung ordnungsgemäße Entsorgung zu gewährleisten:

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

Andere Tipps

Sie können auch das Writer-Objekt zunichte machen nach dem Schließen.

versuchen writer.Flush(); zu verwenden, bevor writer.Close();

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top