如何检查文件是否由用户编辑/修改?

时间:2018-09-09 01:24:56

标签: file dart filesystems flutter

我在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条件...是否有任何功能性的方法来检查文件上的真正修改?例如在文件中编辑一些文本,或更改名称...类似的东西

请您花时间

1 个答案:

答案 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');
  }
});

如果您需要确定自上次运行程序以来文件是否已更改,那么这当然将不起作用,您必须在执行操作时使用时间戳记,甚至对文件内容进行哈希处理并存储它放在某个地方,因此您以后可以检查哈希是否仍然相同。