如何获得创建文件的时间? (MATLAB)

时间:2014-04-20 06:25:09

标签: matlab

我想在MATLAB中读取一个图像文件,并使用它在系统中创建的时间为我的下一个命令添加延迟。 例如,如果time_created是创建映像文件的系统时间,我希望我的下一个命令在延迟(time_now - time_created)+ 3秒后执行。这可能吗?

3 个答案:

答案 0 :(得分:2)

您可以使用dir

提供的信息
yourFileName = 'myFile.m'

allfiles = dir
filenames = {allfiles(:).name}

[~,idx] = ismember(yourFileName,filenames)

yourFileDate = allfiles(idx).date

将返回日期字符串:

yourFileDate =   06-Mrz-2014 10:53:48

或者:

yourFileDate = allfiles(idx).datenum

将以datenum格式提供输出。 (你可能想要使用它)


然后你可以继续如下:

timeNow = clock                             %//current system time as date vector
timeFileCreation = datevec(yourFileDate)    %//file creation time as date vector

timeDiff = etime(timeNow,timeFileCreation)

返回两个时间向量之间的秒数。

答案 1 :(得分:0)

请注意,matlab的“ dir”命令不会返回文件创建时间,而是最后一次文件修改时间。在您的用例中,创建时间和修改时间可能相同。但是在其他情况下,修改时间可能与创建时间不同(例如,如果用户在创建文件后编辑了文件)。不同的操作系统在创建,最后修改和最后访问时间之间存储不同的文件时间。上次修改时间是运行matlab的所有操作系统中唯一可用的时间,因此这是matlab'dir'命令支持的唯一时间。根据运行的操作系统,可以(至少)使用“系统”命令并了解该操作系统中可用的命令行功能,从而访问该操作系统上可用的其他文件时间。

答案 2 :(得分:0)

Python 现在真正集成到 MATLAB 中,这适用于 Windows 和 MacOS:

d1 =datetime(py.os.path.getctime('video_path'),'ConvertFrom','epochtime','TicksPerSecond',1,'Format','dd-MMM-yyyy HH:mm:ss.SSS');