【问题标题】:Set modification time in matlab在matlab中设置修改时间
【发布时间】:2012-10-23 12:11:23
【问题描述】:

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

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

但是我该如何改变呢?

【问题讨论】:

    标签: file matlab octave


    【解决方案1】:

    这可以使用 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);
    

    【讨论】:

      【解决方案2】:

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

      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) 存在类似的命令

      【讨论】:

      • 或者只是将windows系统时钟设置为您想要的日期,对文件进行空更改,然后将时钟改回来:)
      【解决方案3】:

      基于 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)
      

      【讨论】:

        猜你喜欢
        • 2020-11-17
        • 2011-03-20
        • 1970-01-01
        • 2014-08-31
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-02-01
        相关资源
        最近更新 更多