Dateikonflikte mit File.Create() in C# lösen
Das Erstellen und Schreiben von Dateien in C# kann zu Fehlern führen, wenn bereits ein anderer Prozess auf die Zieldatei zugreift. Dies tritt häufig auch dann auf, wenn Sie mit File.Exists()
nach bereits vorhandenen Dateien suchen, bevor Sie versuchen, diese mit File.Create()
zu erstellen. Der nachfolgende Schreibvorgang (z. B. File.AppendText()
) löst dann eine Ausnahme aus.
Die übliche Lösung besteht darin, das von FileStream
erstellte File.Create()
zu schließen, bevor Sie versuchen zu schreiben:
<code class="language-csharp">File.Create(filePath).Close(); File.WriteAllText(filePath, FileText); // Corrected to use filePath</code>
Das funktioniert zwar, ist aber nicht ideal. Eine effizientere und robustere Methode ist die direkte Verwendung von File.WriteAllText()
, das die Dateierstellung und das Überschreiben intern übernimmt:
<code class="language-csharp">File.WriteAllText(filePath, FileText);</code>
Dieser Ansatz macht das explizite Erstellen und Schließen von Dateien überflüssig, wodurch die Leistung verbessert und der Code vereinfacht wird. File.WriteAllText()
erstellt die Datei, wenn sie nicht vorhanden ist, oder überschreibt sie, wenn sie vorhanden ist. Dies ist im Allgemeinen die bevorzugte Methode zum Schreiben von Text in Dateien in C#.
Das obige ist der detaillierte Inhalt vonWie kann ich Dateikollisionen beim Erstellen und Schreiben von Dateien in C# verhindern?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!