如何使用“dart:io”更改文件日期属性(至少修改日期)?

时间:2014-04-23 13:05:59

标签: dart dart-io dart-sdk

我想要更改文件的修改日期和时间。

我如何在Dart平台上做到这一点?

.NET Framework的示例,C#语言。

File.SetLastWriteTime(path, DateTime.Now);

我确定这是可能的。

我只是不知道如何在Dart这样一个奇妙的平台上以标准的方式做到这一点。

Dart

是不可能的

2 个答案:

答案 0 :(得分:2)

首先想到的方法是使用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);
   });
}

链接到Windows的人的等效代码将是

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

请参阅this question

答案 1 :(得分:0)

调用系统进程似乎是一个严重的问题。这是一个仅使用 Dart API 且不依赖于平台的函数。

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

这将更新上次修改时间。