在matlab中设置修改时间

时间:2012-10-23 12:11:23

标签: file matlab octave

我可以通过以下方式在matlab中获得修改时间:

>> f = dir('my_filename.dat');
>> f.date

但我怎么能改变呢?

3 个答案:

答案 0 :(得分:7)

这可以使用Java& Matlab完成:

import java.io.File java.text.SimpleDateFormat
f = File('my_filename.dat');
sdf = SimpleDateFormat('HH:mm dd/MM/yyyy');
newDate = sdf.parse('12:34 10/12/2010');
f.setLastModified(newDate.getTime);

答案 1 :(得分:4)

要将日期设置为当前日期,您可以将某些内容写入文件:

fid = fopen('my_filename.dat', 'r+');
byte = fread(fid, 1);
fseek(fid, 0, 'bof');
fwrite(fid, byte);
fclose(fid);

在这里,我从文件的开头读取一个字节,然后将其写回。

如果要将其设置为其他内容,可以使用系统调用来执行此操作。在Linux上,您可以使用touch

system('touch -d "2012-10-01" my_filename.dat');

Win32 Console ToolBox 1.0

中的窗口(Touch)存在类似命令

答案 2 :(得分:1)

以Java解决方案为基础:

function setFileDate(fn,date)
% date needs to be UTC I think

java.io.File(fn).setLastModified(etime(datevec(date),[1970 1 1 0 0 0])*1000);

或者

function updateFileDate(fn)
java.io.File(fn).setLastModified(java.lang.System.currentTimeMillis)