我用filesystemwatcher实时监控服务器的某个文件夹,服务器端出现变动则将变动的文件拷贝到本地机器上。
问题:
服务器端文件一出现变动,filesystemwatcher 立即触发onchange事件,并开始拷贝,造成只能拷贝O字节文件,如何控制程序,使其等待服务器端文件完成变动动作后再拷贝
问题:
服务器端文件一出现变动,filesystemwatcher 立即触发onchange事件,并开始拷贝,造成只能拷贝O字节文件,如何控制程序,使其等待服务器端文件完成变动动作后再拷贝
OnCreated事件触发后,Copy执行前,判断一下新文件大小
另外catch一下,有没有其它的Exception
但是拷贝文件完成后肯定会有一次onchanged调用,根据MSDN的要求,应该尽可能使事件处理代码短小。
可以采用这样一个办法 onchanged的处理程序不负责拷贝文件,而是将更改的文件名放在一个自定义的队列里,而在另一个过程里定时扫描这个队列 如果发现一段时间里队列没有新条目进入时合并队列中重复项,然后从队列里取出文件名进行拷贝操作。
你的方法可以试试to kkun_3yue3(遍身罗倚者,不是养蚕人)
文件大小不好判断的时候你的方法好像费力点