Apakah ada cara untuk mendapatkan waktu pembuatan file di windows dalam akurasi yang lebih tinggi? Saya ingin mendapatkan waktu pembuatan video mp4-dalam milidetik. Apakah ini mungkin?
windows
file-management
Phil
sumber
sumber
ctime
salinan menjadi waktu disalin.stat
untuk mendapatkan semua 3 cap waktu. Tentu saja, itu karena saya biasanya menggunakan GNU / Linux.Jawaban:
Resolusi cap waktu
Cap waktu pembuatan file di windows tergantung pada sistem file:
FAT / VFAT memiliki resolusi maksimum 2s
NTFS memiliki resolusi maksimum 100 ns
solusi wmic
Anda dapat menggunakan
wmic
untuk mengambil tanggal pembuatan file ke mikrodetik terdekat.Contoh:
Tanggal pembuatan
20150329221650.080654+060
adalah cap waktu, dengan format berikut:dimana:
yyyy
Tahun empat digit (0000 hingga 9999).mm
Dua digit bulan (01 hingga 12).dd
Dua digit hari dalam sebulan (01 hingga 31).HH
Jam dua digit sehari menggunakan jam 24 jam (00 hingga 23).MM
Dua digit menit dalam satu jam (00 hingga 59).SS
Dua digit jumlah detik dalam menit (00 hingga 59).xxxxxx
Enam digit jumlah mikrodetik dalam detik (000000 hingga 999999)s
Tanda plus (+
) atau tanda minus (-
) untuk menunjukkan offset positif atau negatif dari Coordinated Universal Times (UTC).UUU
Offset tiga digit menunjukkan jumlah menit yang menyimpang dari zona waktu asal dari UTC.solusi stat
Anda juga dapat menggunakan
stat
(dari instalasi cygwin atau mingw ).Contoh:
output dir untuk perbandingan
Bacaan lebih lanjut
sumber
xxxxxx
adalah Enam digit jumlah mikrodetik di detik (000000 hingga 999999) . Mikro , yaitu10^-6
. Tentu saja, triplet pertama mewakili mili- (10^-3
): terpotong, tidak bulat. Triplet kedua yang diekstraksi tidak mewakili apa pun dalam dirinya sendiri ... Namun, beberapawmi
nilai datetime menunjukkan triplet kedua000
selalu, misalnyawmic OS get LocalDateTime
Cara cerdas ditunjukkan di sini: /programming/5180592/showing-ntfs-timestamp-with-100-nsec-granularity
Itu menggunakan VBScript untuk query database CIM WMI dan mengembalikan
FILETIME
struktur yang terkait dengan file.Ada juga alat sumber terbuka yang dapat memeriksa metadata file media, seperti EXIFtool yang diarahkan untuk mengelola metadata media yang dibuat oleh kamera digital.
sumber
Saya menemukan cara bagaimana mendapatkan ini di Matlab:
Anda dapat menggunakan fungsi GetFileTime yang ditulis oleh Jan Simon. Jika Anda tidak ingin mengkompilasi file mex Anda sendiri, Anda juga dapat mengunduh file yang dikompilasi di sini .
Ini tidak setepat menggunakan wmic (hanya ms) tetapi untuk tujuan saya itu cocok.
sumber
Ini tergantung pada sistem file : FAT memiliki 2 resolusi kedua, NTFS secara teoritis memiliki resolusi 100 ns, tetapi sebenarnya resolusi adalah 10 ms . Yang mengatakan, interupsi memiliki prioritas lebih tinggi daripada disk I / O, dan saya tidak yakin efek caching ada pada cap waktu. Pengatur waktu multimedia dioptimalkan untuk akurasi, sehingga akan menjadi cara yang lebih disukai untuk menerapkan pengaturan waktu.
Anda dapat menggunakan alat yang ada seperti XYplorer untuk melihat cap waktu resolusi tinggi, atau , Anda mungkin lebih suka menulis aplikasi Anda sendiri. Gunakan Metode File.GetCreationTime ; mengembalikan Struktur DateTime dengan properti Millisecond .
sumber
wmic
menunjukkan resolusi ke mikrodetik terdekat .