How to get creation date of files

241 ビュー (過去 30 日間)
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 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 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 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)
[a,b]=system(sprintf('GetFileInfo "%s"',fname)); s=strfind(b,'created: ')+9; crdat=b(s:s+18)

Konstantin 2023 年 1 月 26 日
Why not like this?
file_info = dir(path_to_file)
  1 件のコメント
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