在一个项目中,我有一个工作文件夹。如果我们将文件或文件文件夹从某个地方复制到该文件夹,我需要检测复制是否已完成。之后,我将处理此工作文件夹中的文件。
FileSystemWatcher theWatcher = new FileSystemWatcher(workingFolder);
theWatcher.NotifyFilter = NotifyFilters.LastAccess | NotifyFilters.LastWrite |
NotifyFilters.FileName | NotifyFilters.DirectoryName |
NotifyFilters.Size;
theWatcher.IncludeSubdirectories = true;
theWatcher.Created += OnFolderChanged;
theWatcher.EnableRaisingEvents = true;
每当复制文件时,都会触发 OnFolderChanged 事件。所以一开始我尝试获取 2 个文件复制之间的 eclipse 时间,但由于网络速度和文件大小,很难确定 eclipse 时间。我还尝试了Find if a Copy process is in progress on Directory 中的方法,但是在复制过程中仍然可以打开令牌文件。
有什么好的方法来处理这个吗?