Der Prozess kann nicht auf die Datei zugreifen ‚Verzeichnis \ Datei‘, weil sie von einem anderen Prozess in C # File Writer verwendet wird
-
29-09-2019 - |
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?
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();