【发布时间】:2012-10-23 12:11:23
【问题描述】:
我可以通过以下方式在matlab中获取修改时间:
>> f = dir('my_filename.dat');
>> f.date
但是我该如何改变呢?
【问题讨论】:
我可以通过以下方式在matlab中获取修改时间:
>> f = dir('my_filename.dat');
>> f.date
但是我该如何改变呢?
【问题讨论】:
这可以使用 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);
【讨论】:
要将日期设置为当前日期,您可以在文件中写入一些内容:
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 中的 windows (Touch) 存在类似的命令
【讨论】:
基于 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)
【讨论】: