Mi sono imbattuto più volte in questo problema in cui mi piacerebbe avere più versioni dello stesso file nella stessa directory. Il modo in cui lo sto usando con C# è aggiungendo un timestamp al nome del file con qualcosa come questo DateTime.Now.ToString().Replace('/', '-').Replace(':', '.')
. C'è un modo migliore per farlo?Aggiungi TimeStamp a un nome file
risposta
È possibile utilizzare DateTime.ToString Method (String)
DateTime.Now.ToString("yyyyMMddHHmmssfff")
string.Format("{0:yyyy-MM-dd_hh-mm-ss-fff}",DateTime.Now)
;
$"{DateTime.Now:yyyy-MM-dd_hh-mm-ss-fff}"
Ci sono seguente formato personalizzato identificatori y (anno), M (mese), D (giorno), h (ore 12), H (24 ore) , m (minuto), s (secondo), f (seconda frazione ), F (seconda frazione, zero finali sono tagliati), t (PM o AM) ez (fuso orario).
Con Metodo di estensione
Usage:
string result = "myfile.txt".AppendTimeStamp();
//myfile20130604234625642.txt
metodo di estensione
public static class MyExtensions
{
public static string AppendTimeStamp(this string fileName)
{
return string.Concat(
Path.GetFileNameWithoutExtension(fileName),
DateTime.Now.ToString("yyyyMMddHHmmssfff"),
Path.GetExtension(fileName)
);
}
}
Forse aggiungere DateTime.Now.Ticks
invece, è un po 'più veloce poiché non si creeranno 3 stringhe e il valore delle zecche sarà sempre anche unico.
Io preferisco usare:
string result = "myFile_" + DateTime.Now.ToFileTime() + ".txt";
Cosa fa ToFileTime()?
Converte il valore dell'oggetto DateTime corrente in un file di Windows.
tempo di file
public long ToFileTime()
Un Windows è un valore a 64 bit che rappresenta il numero di intervalli di 100 nanosecondi trascorsi dal 12:00 a mezzanotte, 1 GENNAIO 1601 AD (CE) Coordinated Universal Time (UTC). Windows utilizza un tempo di file per registrare quando un'applicazione crea, accede o scrive su un file.
è possibile utilizzare:
Stopwatch.GetTimestamp();
questa risposta il modo in cui ottieni il timestamp !. aggiungilo a un file usando la classe Path e la manipolazione delle stringhe non è affatto un problema. questa è solo un'alternativa al metodo DateTime.ToString (String) o string.Format ("{0: yyyy-MM-dd_hh-mm-ss-tt}", DateTime.Now); – Joseph
È possibile utilizzare sotto invece:
DateTime.Now.Ticks
- 1. Aggiungi data al nome file in linux
- 2. git aggiungi il nome file completo automatico
- 3. Aggiungi righe a un file utilizzando StreamWriter
- 4. Aggiungi file a Itunes com
- 5. Salva file con nuovo nome file: aggiungi al nome file esistente
- 6. Flume HDFS affondare: Rimuovere timestamp dal nome del file
- 7. Come aggiungere un timestamp a TFSBuild.proj?
- 8. PHP Rinomina Nome file se esiste Aggiungi numero alla fine
- 9. python: Crea file ma se il nome esiste aggiungi numero
- 10. aggiungi il nome della classe all'elemento nel file uibinder xml
- 11. Aggiungi il file mobileprovision a Xcode
- 12. Aggiungi un nuovo file in Intellij non aggiunto a subversion
- 13. aggiungi file a un archivio senza leggere/riscrivere l'intero archivio
- 14. Aggiungi un JFreeChart a JPanel
- 15. Aggiungi proprietà a un elenco?
- 16. Rails: come aggiungere timestamp a un modello?
- 17. Aggiunta di giorni a un timestamp
- 18. Converti timestamp a stringa
- 19. Subversion - Aggiungi file di testo - File Status A (bin)
- 20. Aggiungi un selettore personalizzato a un UIBarButtonItem
- 21. LLDB: aggiungi un file di simboli?
- 22. python - aggiungi cookie a cookiejar
- 23. Aggiungi .gitignore a gitignore
- 24. XSLT Aggiungi target = "_ blank" a un URL
- 25. Aggiungi solo file
- 26. aggiungi regex a jquery.validate
- 27. Aggiungi barra grafica a un StringGrid col
- 28. Aggiungi un testo al file in Python
- 29. Batch: Timestamp a UNIX Time
- 30. Da millisecondi a UNIX timestamp
Ho aggiunto 'Path.GetDirectoryName (fileName)' per ottenere il percorso completo del file. Quindi ha sostituito 'string.Concat()' con 'Path.Combina() 'ottieni il nome completo. – gilu