Saya telah menemukan masalah ini beberapa kali di mana saya ingin memiliki beberapa versi dari file yang sama dalam direktori yang sama. Cara saya melakukannya dengan menggunakan C # adalah dengan menambahkan cap waktu ke nama file dengan sesuatu seperti ini DateTime.Now.ToString().Replace('/', '-').Replace(':', '.'). Apakah ada cara yang lebih baik untuk melakukan ini?
Ada penentu format kustom berikut y (tahun), M (bulan), d (hari), h (jam 12), H (jam 24), m (menit), s (detik), f (pecahan kedua), F (pecahan kedua, nol di belakangnya dipangkas), t (PM atau AM) dan z (zona waktu).
Dengan Metode Ekstensi
Pemakaian:
string result ="myfile.txt".AppendTimeStamp();//myfile20130604234625642.txt
Saya telah menambahkan Path.GetDirectoryName(fileName)untuk mendapatkan jalur lengkap ke file. Kemudian diganti string.Concat()dengan Path.Combine()get the full filename.
gilu
17
Saya lebih suka menggunakan:
string result ="myFile_"+DateTime.Now.ToFileTime()+".txt";
Apa yang dilakukan ToFileTime ()?
Mengonversi nilai objek DateTime saat ini ke waktu file Windows.
public long ToFileTime()
Waktu file Windows adalah nilai 64-bit yang mewakili jumlah interval 100-nanodetik yang telah berlalu sejak 12:00 tengah malam, 1 Januari 1601 AD (CE) Waktu Universal Terkoordinasi (UTC). Windows menggunakan waktu file untuk merekam saat aplikasi membuat, mengakses, atau menulis ke file.
Mungkin menambahkan DateTime.Now.Tickssebagai gantinya, sedikit lebih cepat karena Anda tidak akan membuat 3 string dan nilai ticks juga akan selalu unik.
ini jawaban cara Anda mendapatkan stempel waktu !. menambahkannya ke file menggunakan kelas Path dan manipulasi string tidak menjadi masalah sama sekali. ini hanya alternatif untuk Metode DateTime.ToString (String) atau string.Format ("{0: yyyy-MM-dd_hh-mm-ss-tt}", DateTime.Now);
Joseph
1
Anda dapat menggunakan di bawah ini sebagai gantinya:
Untuk tanggal dan waktu saat ini sebagai nama untuk file pada sistem file. Sekarang panggil metode string.Format, dan gabungkan dengan DateTime.Now, untuk metode yang mengeluarkan string yang benar berdasarkan tanggal dan waktu.
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)
untuk mendapatkan jalur lengkap ke file. Kemudian digantistring.Concat()
denganPath.Combine()
get the full filename.Saya lebih suka menggunakan:
Apa yang dilakukan ToFileTime ()?
Sumber: dokumentasi MSDN - Metode DateTime.ToFileTime
sumber
Mungkin menambahkan
DateTime.Now.Ticks
sebagai gantinya, sedikit lebih cepat karena Anda tidak akan membuat 3 string dan nilai ticks juga akan selalu unik.sumber
kamu bisa memakai:
sumber
Anda dapat menggunakan di bawah ini sebagai gantinya:
sumber
Untuk tanggal dan waktu saat ini sebagai nama untuk file pada sistem file. Sekarang panggil metode string.Format, dan gabungkan dengan DateTime.Now, untuk metode yang mengeluarkan string yang benar berdasarkan tanggal dan waktu.
Keluaran:
sumber