我在dart / flutter中遇到问题,我想检查用户是否打开文件并修改/编辑了该文件,并且只有在这种情况发生时,我才执行不重要的操作...为此,我使用了这段代码:
String dir = await bloc.buildFileDirectory(filePath);
File file = new File('$dir/filename');
DateTime date = await file.lastModified();
if(date.millisecondsSinceEpoch < someOtherFileTimeStamp)
do something
使用Dart中 File 类中的方法 lastModified() ,当用户打开文件时,它将考虑修改,并且因此它将触发if条件...是否有任何功能性的方法来检查文件上的真正修改?例如在文件中编辑一些文本,或更改名称...类似的东西
请您花时间
答案 0 :(得分:0)
是的,您可以使用watcher
库的FileWatcher。
以下是使用方法的示例:
final watcher = FileWatcher('main.dart');
final subscription = watcher.events.listen((event) {
switch (event.type) {
case ChangeType.ADD:
print('Added file');
break;
case ChangeType.MODIFY:
print('Modified');
break;
case ChangeType.REMOVE:
print('Removed');
}
});
如果您需要确定自上次运行程序以来文件是否已更改,那么这当然将不起作用,您必须在执行操作时使用时间戳记,甚至对文件内容进行哈希处理并存储它放在某个地方,因此您以后可以检查哈希是否仍然相同。