Windowsでファイルの作成時間をより正確に取得する方法はありますか? mp4ビデオの作成時間をミリ秒単位で取得したい。これは可能ですか?
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
作成日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
分の2桁の秒数(00〜59)。
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
これをMatlabで取得する方法を見つけました:
Jan Simonによって作成された GetFileTime 関数を使用できます。独自のmexファイルをコンパイルしたくない場合は、コンパイルされたファイル here をダウンロードすることもできます。
Wmic(msのみ)を使用するほど正確ではありませんが、私の目的には適しています。
巧妙な方法をここに示します: https://stackoverflow.com/questions/5180592/showing-ntfs-timestamp-with-100-nsec-granularity
VBScriptを使用してWMIのCIMデータベースをクエリし、ファイルに関連付けられているFILETIME
構造体を返します。
EXIFtool など、メディアファイルのメタデータを検査できるオープンソースツールもあります。これは、デジタルカメラで作成されたメディアのメタデータを管理するためのものです。