Как изменить атрибуты даты файла (хотя бы дату изменения) с помощью "dart:io"?

Я хочу изменить дату и время модификации файла.

Как я могу сделать это на платформе Dart?

Пример из.NET Framework, язык C#.

File.SetLastWriteTime(path, DateTime.Now);

Я уверен, что это возможно.

Я просто не знаю, как это сделать стандартным способом на такой замечательной платформе, как Dart.

Это невозможно в дартс

3 ответа

Первый метод, который приходит на ум, это просто вызвать touch с помощью Process,

например.

import 'dart:io';

Future touchFile(File f) {
  return Process.run("touch", [f.path]);
}

void main() {
   var f = new File('example');
   print(f.statSync().changed);
   touchFile(f).then((_) {
     print(f.statSync().changed);
   });
}

Эквивалентный код для людей, которые связаны с окнами будет

Future touchFile(File f) {
  return Process.run("copy", ["\b", f.path, "+,,"]);
}

Смотрите этот вопрос

Обращение к системным процессам кажется серьезным взломом. Вот функция, которая использует только Dart API и не зависит от платформы.

      void touchFile(File file) {
  final touchfile = file.openSync(mode: FileMode.append);
  touchfile.flushSync();
  touchfile.closeSync();
}

Это обновит время последнего изменения.

Начиная с 9 февраля 2017 г. вы можете установить дату изменения файла следующим образом:

      var myFile = await File('foo.bar').openWrite();
await myFile.setLastModified(DateTime.now());
Другие вопросы по тегам