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