在我的项目中,我有一个工作文件夹。如果我们从其他地方复制文件或文件夹到这个文件夹,我需要检测复制是否已经完成。之后,我将处理这个工作文件夹中的文件。
每当文件复制时,OnFolderChanged事件将被触发。因此,我首先尝试获取2个文件复制之间的时间差,但由于网络速度和文件大小的影响,时间差很难确定。我也尝试了在目录中查找复制进程是否正在进行的方法,但即使在复制过程中,令牌文件仍然可以被打开。
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个文件复制之间的时间差,但由于网络速度和文件大小的影响,时间差很难确定。我也尝试了在目录中查找复制进程是否正在进行的方法,但即使在复制过程中,令牌文件仍然可以被打开。
有没有好的方法来处理这个问题?
FileSystemWatcher
无法知道复制模块是否还会复制更多的文件。 - Miserable Variable