C# 监听文件夹下的Zip文件

.Net技术 码拜 8年前 (2016-02-23) 879次浏览
本人用FileSystemWatcher类中的Created事件监听某文件下的zip文件,假如有新加入的文件就解压,但是假如该文件过大,复制进这个指定的文件夹需要很长的时间,那么程序就会报错提示:1467045934_26580f66476866bdc78a7ba926557966.zip is not a valid zip file,有没有什么办法可以让这个事件等到文件全部复制完成再进行解压的?
解决方案

10

Created 事件发生时,启动一个定时器
当定时器计时结束的事件里完成操作

20

引用 LZ xx706561551 的回复:

本人用FileSystemWatcher类中的Created事件监听某文件下的zip文件,假如有新加入的文件就解压,但是假如该文件过大,复制进这个指定的文件夹需要很长的时间,那么程序就会报错提示:1467045934_26580f66476866bdc78a7ba926557966.zip is not a valid zip file,有没有什么办法可以让这个事件等到文件全部复制完成再进行解压的?

最简单也是最偷懒的方法,循环
try catch
直到能压缩为止
FileSystemWatcher 在监测到复制文件操作时
会顺序引发 Created Changed Changed 事件
对应 Create Open Close 操作
假如LZ的需求只是监测复制操作,可以使用这个模式进行判断
最后,可以定义一个类,在类中调用 FileSystemWatcher.WaitForChanged 方法,
自定义事件并根据条件触发

10

引用 2 楼 xx706561551 的回复:
Quote: 引用 1 楼 daixf_csdn 的回复:

判断文件尺寸,有没有一直变化

用线程去检测吗?是用fileinfo里的方法还是什么?

可以啊,这也不难


CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明C# 监听文件夹下的Zip文件
喜欢 (0)
[1034331897@qq.com]
分享 (0)