Mein C# -Code generiert mehrere Textdateien basierend auf Eingabe und speichert diese in einem Ordner. Außerdem nehme ich an, dass der Name der Textdatei der Eingabe entspricht (die Eingabe enthält nur Buchstaben) Wenn zwei Dateien den gleichen Namen haben, überschreibt sie einfach die vorherige Datei. Aber ich möchte beide Dateien behalten.Automatisches Umbenennen einer Datei, wenn sie bereits in Windows existiert
Ich möchte keine aktuelle Datum Uhrzeit oder eine zufällige Zahl an den zweiten Dateinamen anhängen. Stattdessen möchte ich es genauso machen wie Windows. Wenn der Name der ersten Datei AAA.txt ist, dann ist der zweite Dateiname AAA (2) .txt, der dritte Dateiname ist AAA (3) .txt ..... N der Dateiname ist AAA (N) .txt .
string[] allFiles = Directory.GetFiles(folderPath).Select(filename => Path.GetFileNameWithoutExtension(filename)).ToArray();
foreach (var item in allFiles)
{
//newFileName is the txt file which is going to be saved in the provided folder
if (newFileName.Equals(item, StringComparison.InvariantCultureIgnoreCase))
{
// What to do here ?
}
}
Dateierweiterungen würden falsch angezeigt werden, zB ** C: \ file.txt ** würde ** C: \ file.txt (1) ** "etc. – flindeberg
@flindeberg good catch. Ich glaube, ich habe das korrigiert – cadrell0
Für zukünftige Ref. ein kleiner Haken zu beachten: Wenn die Datei, die überprüft wird, benannt ist wie ein Name (1) etwas mehr text.txt und die Datei existiert bereits, wenn aufgefordert, beide Dateien Windows zu halten Umbenennen Sie die Datei 'irgendeinen Namen (2) etwas mehr text.txt' und nicht' irgendeinen Namen (1) etwas mehr Text (1) .txt', als der obige Code stattdessen würde. –