Il mio codice C# sta generando diversi file di testo in base all'input e salvando quelli in una cartella. Inoltre, suppongo che il nome del file di testo sia uguale all'input (l'input contiene solo lettere) Se due file hanno lo stesso nome, significa semplicemente sovrascrivere il file precedente. Ma voglio mantenere entrambi i file.Rinomina automaticamente un file se già esiste in modo Windows
Non voglio aggiungere l'ora della data corrente o un numero casuale al 2 ° nome del file. Invece voglio farlo allo stesso modo di Windows. Se il nome del file principale è AAA.txt, il secondo nome file è AAA (2) .txt, il nome del terzo file sarà AAA (3) .txt ..... Il nome del file sarà 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 ?
}
}
Le estensioni dei file risulterebbero errate, ex ** C: \ file.txt ** diventerebbe ** C: \ file.txt (1) ** "ecc. – flindeberg
@flindeberg buona cattura. Credo di aver corretto questo errore – cadrell0
Per un futuro ref. un po 'di cui essere a conoscenza: se il file che si sta controllando è chiamato come 'some name (1) some more text.txt' e il file esiste già, se viene richiesto di mantenere entrambi i file Windows rinominerà il file 'some name (2) some more text.txt' e non' some name (1) some more text (1) .txt' come invece farebbe il codice sopra. –