我想更改文件的修改日期和时间。
我如何在 Dart 平台上做到这一点?
.NET Framework 中的示例,C# 语言。
File.SetLastWriteTime(path, DateTime.Now);
我确信这是可能的。
我只是不知道如何在 Dart 这样出色的平台上以标准方式进行操作。
在 Dart 中是不可能的
The first method that comes to mind would be to just call touch
using Process
.
eg.
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);
});
}
The equivalent code for people who are chained to windows would be
Future touchFile(File f) {
return Process.run("copy", ["\b", f.path, "+,,"]);
}
See this question
调用系统进程似乎是一个严重的黑客攻击。这里有两个只使用 Dart API 的函数,并且不依赖于平台。一个是同步的,另一个是异步的。使用适合您需要的任何版本。
void touchFileSync(File file) {
final touchfile = file.openSync(mode: FileMode.append);
touchfile.flushSync();
touchfile.closeSync();
}
Future<void> touchFile(File file) async {
final touchfile = await file.open(mode: FileMode.append);
await touchfile.flush();
await touchfile.close();
}
这将更新上次修改时间。