MATLAB:获取文件的最后修改时间

时间:2013-07-08 08:51:48

标签: matlab timestamp

我正在寻找执行某些例程的MATLAB代码(更新file.m),如果file.csv的编辑时间比file.m更近。

应该是这样的东西:

% Write time extraction
tempC     = GetFileTime('file.csv', [], 'Write');
tempdateC = tempC.date
tempM     = GetFileTime('file.m', [], 'Write');
tempdateM = tempM.date

% Write time comparison
if numel(dir('file.m')) == 0 || tempdateC >= tempdateM
    matDef = regexprep(fileread('file.csv'), '(\r\n|\r|\n)', ';\n');
    f = fopen('file.m', 'w');
    fwrite(f, ['Variable = [' matDef(1:end) '];']);
    fclose(f);
end

时间戳提取的行似乎是错误的MATLAB代码。其余的工作(Evaluate variables in external file strings)。

1 个答案:

答案 0 :(得分:5)

您可以使用MATLAB的dir命令提取文件的修改时间。类似的东西:

function modTime = GetFileTime(fileName)
listing = dir(fileName);
% check we got a single entry corresponding to the file
assert(numel(listing) == 1, 'No such file: %s', fileName);
modTime = listing.datenum;
end

请注意,输出采用MATLAB的datenum序列日期格式。