Установить время модификации в Matlab

Я могу получить время модификации в Matlab:

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

Но как я могу это изменить?

3 ответа

Решение

Это можно сделать с помощью 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');

Аналогичная команда существует для Windows (Touch) в Win32 Console ToolBox 1.0

Опираясь на решение 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)
Другие вопросы по тегам