Ich bin mehrmals auf dieses Problem gestoßen, bei dem ich mehrere Versionen derselben Datei im selben Verzeichnis haben möchte. Ich habe es mit C # gemacht, indem ich dem Dateinamen einen Zeitstempel mit so etwas hinzugefügt habe DateTime.Now.ToString().Replace('/', '-').Replace(':', '.'). Gibt es einen besseren Weg, dies zu tun?
Es gibt folgende benutzerdefinierte Formatspezifizierer: y (Jahr), M (Monat), d (Tag), h (Stunde 12), H (Stunde 24), m (Minute), s (Sekunde), f (zweiter Bruch), F. (zweiter Bruch, nachgestellte Nullen werden getrimmt), t (PM oder AM) und z (Zeitzone).
Mit Erweiterungsmethode
Verwendung:
string result ="myfile.txt".AppendTimeStamp();//myfile20130604234625642.txt
Ich habe hinzugefügt Path.GetDirectoryName(fileName), um den vollständigen Pfad zur Datei zu erhalten. Dann ersetzt string.Concat()mit Path.Combine()dem get der vollständigen Dateinamen.
Gilu
17
Ich bevorzuge:
string result ="myFile_"+DateTime.Now.ToFileTime()+".txt";
Was macht ToFileTime ()?
Konvertiert den Wert des aktuellen DateTime-Objekts in eine Windows-Dateizeit.
public long ToFileTime()
Eine Windows-Dateizeit ist ein 64-Bit-Wert, der die Anzahl der 100-Nanosekunden-Intervalle darstellt, die seit Mitternacht, 1. Januar 1601, AD (CE) Coordinated Universal Time (UTC), vergangen sind. Windows verwendet eine Dateizeit, um aufzuzeichnen, wann eine Anwendung eine Datei erstellt, darauf zugreift oder in eine Datei schreibt.
Vielleicht ist das Anhängen DateTime.Now.Ticksstattdessen ein kleines bisschen schneller, da Sie keine 3 Zeichenfolgen erstellen und der Ticks-Wert auch immer eindeutig ist.
Mit dieser Antwort erhalten Sie den Zeitstempel!. Hängen Sie es mit der Path-Klasse an eine Datei an, und die Manipulation von Zeichenfolgen ist überhaupt kein Problem. Dies ist nur eine Alternative zu DateTime.ToString-Methode (String) oder string.Format ("{0: JJJJ-MM-TT_HH-MM-SS-TT}", DateTime.Now).
Für aktuelles Datum und Uhrzeit als Name für eine Datei im Dateisystem. Rufen Sie nun die Methode string.Format auf und kombinieren Sie sie mit DateTime.Now für eine Methode, die die richtige Zeichenfolge basierend auf Datum und Uhrzeit ausgibt.
using System;
using System.IO;classProgram{staticvoidMain(){//// Write file containing the date with BIN extension//string n =string.Format("text-{0:yyyy-MM-dd_hh-mm-ss-tt}.bin",DateTime.Now);File.WriteAllText(n,"abc");}}
Path.GetDirectoryName(fileName)
, um den vollständigen Pfad zur Datei zu erhalten. Dann ersetztstring.Concat()
mitPath.Combine()
dem get der vollständigen Dateinamen.Ich bevorzuge:
Was macht ToFileTime ()?
Quelle: MSDN-Dokumentation - DateTime.ToFileTime-Methode
quelle
Vielleicht ist das Anhängen
DateTime.Now.Ticks
stattdessen ein kleines bisschen schneller, da Sie keine 3 Zeichenfolgen erstellen und der Ticks-Wert auch immer eindeutig ist.quelle
Sie können verwenden:
quelle
Sie können stattdessen unten verwenden:
quelle
Für aktuelles Datum und Uhrzeit als Name für eine Datei im Dateisystem. Rufen Sie nun die Methode string.Format auf und kombinieren Sie sie mit DateTime.Now für eine Methode, die die richtige Zeichenfolge basierend auf Datum und Uhrzeit ausgibt.
Ausgabe :
quelle