Windowsでファイルの作成時間をより正確に取得する方法はありますか?mp4-videoの作成時間をミリ秒単位で取得したい。これは可能ですか?
ctime、コピーがコピーされた時刻になるように注意してください。
statを使用して3つのタイムスタンプをすべて取得します。もちろん、それは私が通常GNU / Linuxを使用しているからです。
Windowsでファイルの作成時間をより正確に取得する方法はありますか?mp4-videoの作成時間をミリ秒単位で取得したい。これは可能ですか?
ctime、コピーがコピーされた時刻になるように注意してください。
statを使用して3つのタイムスタンプをすべて取得します。もちろん、それは私が通常GNU / Linuxを使用しているからです。
回答:
Windowsでのファイルの作成タイムスタンプは、ファイルシステムによって異なります。
FAT / VFATの最大解像度は2秒です
NTFSの最大解像度は100 nsです
を使用wmicして、ファイル作成日を最も近いマイクロ秒まで取得できます。
例:
F:\test>wmic datafile where name="f:\\test\\test.txt" get creationdate | findstr /brc:[0-9]
20150329221650.080654+060
creationdate 20150329221650.080654+060は、次の形式のタイムスタンプです。
yyyymmddHHMMSS.xxxxxxsUUU
どこ:
yyyy 4桁の年(0000〜9999)。
mm 2桁の月(01〜12)。
dd 月の2桁の日(01〜31)。
HH 24時間制(00〜23)を使用した2桁の時間。
MM 時間の2桁の分(00〜59)。
SS 分(00から59)の2桁の秒数。
xxxxxx 秒の6桁のマイクロ秒数(000000〜999999)
s協定世界時(UTC)からの正または負のオフセットを示すプラス記号(+)またはマイナス記号(-)。
UUU 発信元のタイムゾーンがUTCから外れる分数を示す3桁のオフセット。
stat(cygwinまたはmingwインストールから)を使用することもできます。
例:
DavidPostill@Hal /f/test
$ stat test.txt | grep Birth
Birth: 2015-03-29 22:16:50.080654200 +0100
F:\test>dir /t:c test.txt
Volume in drive F is Expansion
Volume Serial Number is 3656-BB63
Directory of F:\test
29/03/2015 22:16 32 test.txt
1 File(s) 32 bytes
0 Dir(s) 1,798,546,849,792 bytes free
xxxxxxは、6桁のマイクロ秒数(000000〜999999)です。Micro-、つまり10^-6。もちろん、最初のトリプレットはミリ(10^-3)を表します:丸められず、切り捨てられます。抽出された2番目のトリプレットは、それ自体では何も表しません ...ただし、一部のwmi日時値は000常に2番目のトリプレットを示します。たとえば、wmic OS get LocalDateTime
巧妙な方法がここに示されています:https : //stackoverflow.com/questions/5180592/showing-ntfs-timestamp-with-100-nsec-granularity
VBScriptを使用してWMIのCIMデータベースを照会FILETIMEし、ファイルに関連付けられた構造を返します。
また、デジタルカメラで作成されたメディアのメタデータを管理するためのEXIFtoolなど、メディアファイルのメタデータを検査できるオープンソースツールもあります。
Matlabでこれを取得する方法を見つけました:
Jan Simonが作成したGetFileTime関数を使用できます。独自のmexファイルをコンパイルしたくない場合は、コンパイルされたファイルをここからダウンロードすることもできます。
wmic(msのみ)を使用するほど正確ではありませんが、私の目的には適しています。
これは、ファイルシステムに依存する NTFSは、FATは、2第2の解像度を有する。理論的には 100ナノ秒の分解能を有するが、実際の解像度は10ミリ秒です。ただし、割り込みはディスクI / Oよりも優先度が高く、書き込みキャッシュがタイムスタンプに与える影響はわかりません。マルチメディアタイマーは精度が最適化されているため、タイミングを実装するための好ましい方法です。
XYplorerなどの既存のツールを使用して、高解像度のタイムスタンプを表示
できます。または、独自のアプリケーションを作成することもできます。File.GetCreationTimeメソッドを使用します。Millisecondプロパティを持つDateTime構造体を返します。
wmic