我正在编写一个侦听位置的工具,最好是远程位置,如果创建了新文件夹或文件,它会将其下载到本地位置。
目前我正在使用 侦听远程文件夹FileSystemWatcher,当创建新文件夹/文件时,我启动一个计时器,如果计时器达到 X 分钟,它开始将其复制到本地。在“监视”文件夹中创建新文件夹或文件会触发,FileSystemWatcher.Changed但如果有很多子目录,并且如果有大文件复制到监视文件夹,它有时会失败,它仅在复制开始时检测到,我的计时器可以完成直到它完成了。
所以:我有 3 台远程计算机/位置,A,B,C
A开始将一些文件夹/文件复制到B并且 C收听B。
C如何检查A是否已完成复制FileSystemWatcher?我不想经常比较B和C并复制其余文件。
我想您是在询问系统更改日志。也就是说,在您检测到需要复制文件和真正开始复制之间,总会有文件正在使用、已被删除、更新等情况。这是一篇古老但准确的文章,可以为您提供更多详细信息。
http://www.microsoft.com/msj/0999/journal/journal.aspx
来自文章摘要:
“Windows 2000 更改日志是一个数据库,其中包含对 NTFS 5.0 卷上的文件或目录所做的每个更改的列表。每个卷都有自己的更改日志数据库,其中包含反映该卷的文件和目录发生的更改的记录。 ”
向下滚动到标题 ReasonMask and ReturnOnlyOnClose