How to get creation date of files

210 visualizaciones (últimos 30 días)
Gen
Gen el 8 de Jun. de 2016
Comentada: Stephen23 el 26 de En. de 2023
How can I get the creation date of file? I can get modified date with dir command but not the creation date.

Respuesta aceptada

Stephen23
Stephen23 el 8 de Jun. de 2016
Editada: Stephen23 el 8 de Jun. de 2016
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 comentarios
Gen
Gen el 4 de Feb. de 2019
Thank you very much.
I'll try these program.
KAE
KAE el 1 de Jul. de 2021
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 '"']);

Iniciar sesión para comentar.

Más respuestas (4)

Guillaume
Guillaume el 8 de Jun. de 2016
On windows you can simply delegate to .Net
d = system.IO.File.GetCreationTime(fullpath)
  1 comentario
Austin Spencer
Austin Spencer el 10 de Jun. de 2019
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);

Iniciar sesión para comentar.


Sam Raymond
Sam Raymond el 5 de Mayo de 2021
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 el 29 de En. de 2019
Editada: Tim Lueth el 29 de En. de 2019
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 el 26 de En. de 2023
Why not like this?
file_info = dir(path_to_file)
  1 comentario
Stephen23
Stephen23 el 26 de En. de 2023
"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:

Iniciar sesión para comentar.

Categorías

Más información sobre File Operations en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by