immer neue Datei anlegen, wenn die Datei existiert bereits mit den selben Ort in C#
Habe ich eine neue Datei mit dem code unten. Aber wenn die Datei bereits vorhanden ist, dann brauche ich zum erstellen einer neuen Datei mit einem anderen Dateinamen. Ist das möglich?
FileStream fs = new FileStream(filePath, FileMode.Append, FileAccess.Write, FileShare.ReadWrite);
BinaryWriter bw = new BinaryWriter(fs);
bw.Write(b);
bw.Close();
fs.Dispose();
meine Datei-Speicherort ist der gleiche.
- Warum nicht einfach überprüfen, ob es existiert?
if(System.IO.File.Exists(filePath)) { /* change the filename here */ }
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sicher, Sie verwenden können
File.Exists(filePath)
zu checck, wenn fie bereits vorhanden ist und wählen Sie einen anderen Namen in diesem Fall.File.Exists
von selbst, ist keine gute Idee.Wenn Sie
FileMode.CreateNew
wird eine Ausnahme geworfen, wenn die Datei bereits vorhanden ist.Können Sie es verwenden, zusammen mit
File.Exists
zur Verringerung der Wahrscheinlichkeit von einer Ausnahme, aber nur mitFile.Exists
ist problematisch. Eine Datei kann erstellt werden zwischen Ihr vorhanden ist überprüfen, und es öffnen. Wenn es ist unwahrscheinlich, dass für die Datei vorhanden ist(beispielsweise bist du mit einem zufällig generierten Namen), dann überspringen Sie dieFile.Exists
überprüfen ganz.FileMode.Create
stattFileMode.CreateNew
verringert die Notwendigkeit, zu überprüfen, ob die Datei vorhanden ist, wie es überschreibt die Datei ohne zu werfen IOExceptions.Sicher, die Sie verwenden können: