How to get creation date of files

241 ビュー (過去 30 日間)
Gen
Gen 2016 年 6 月 8 日
コメント済み: Stephen23 2023 年 1 月 26 日
How can I get the creation date of file? I can get modified date with dir command but not the creation date.

採用された回答

Stephen23
Stephen23 2016 年 6 月 8 日
編集済み: Stephen23 2016 年 6 月 8 日
Try this FEX submission:
Or on windows you can call the DOS command:
but their advice is not quite correct, it actually needs to be like this:
>> [~,str] = dos('dir /T:C *.m');
>> rgx = '(\d{4}\.\d{2}\.\d{2}\.\s+\d{2}:\d{2})\s+\d+\s+([^\n]+)';
>> tkn = regexp(str,rgx,'tokens');
>> tkn{:}
ans =
'2016.03.02. 11:51' 'startup.m'
ans =
'2016.06.07. 15:29' 'Untitled.m'
And then it reads the creation date perfectly!
  4 件のコメント
KAE
KAE 2021 年 7 月 1 日
If you have spaces in the directory name you will need to put double quotes on the file name, here in a variable called fileName:
[~, str] = dos(['dir "' fileName '"']);

サインインしてコメントする。

その他の回答 (4 件)

Guillaume
Guillaume 2016 年 6 月 8 日
On windows you can simply delegate to .Net
d = system.IO.File.GetCreationTime(fullpath)
  1 件のコメント
Austin Spencer
Austin Spencer 2019 年 6 月 10 日
Thanks for the info, this is a nice clean solution! By comparison parsing the return from "dir" seems to be very fragile and is inherently platform dependent.
One correction: at least for my case, "system" must be capitalized.
d = System.IO.File.GetCreationTime(fullpath);
The resulting .NET DateTime object can then be converted into a MATLAB datetime object.
creationDateTime = datetime(d.Year, d.Month, d.Day, d.Hour, d.Minute, d.Second);

サインインしてコメントする。


Sam Raymond
Sam Raymond 2021 年 5 月 5 日
With python now very much integrated into MATLAB (R2021a), a nice way to get this is the following:
d1 = datetime(py.os.path.getctime('video_path'),'ConvertFrom','epochtime','TicksPerSecond',1,'Format','dd-MMM-yyyy HH:mm:ss.SSS');

Tim Lueth
Tim Lueth 2019 年 1 月 29 日
編集済み: Tim Lueth 2019 年 1 月 29 日
On Mac OSX (tested 2019-01-29 using Mojave and Matlab R2018a) use:
[a,b]=system('GetFileInfo myfile.m'); s=strfind(b,'created: ')+9; crdat=b(s:s+18)
or
fname='myfile.m'
[a,b]=system(sprintf('GetFileInfo "%s"',fname)); s=strfind(b,'created: ')+9; crdat=b(s:s+18)
datestr(datenum(crdat))

Konstantin
Konstantin 2023 年 1 月 26 日
Why not like this?
file_info = dir(path_to_file)
  1 件のコメント
Stephen23
Stephen23 2023 年 1 月 26 日
"Why not like this?"
The question asks for the file creation date. DIR() returns the file modification date:
This is explained in the DIR() documentation:

サインインしてコメントする。

カテゴリ

Find more on Dates and Time in Help Center and File Exchange

タグ

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by