2

我正在寻找执行一些例程(更新 a file.m)的 MATLAB 代码,如果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 代码。其余的工作(评估外部文件字符串中的变量)。

4

1 回答 1

6

dir您可以使用 MATLAB 的命令提取文件的修改时间。就像是:

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串行日期格式。

于 2013-07-08T11:48:25.013 回答