以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  [求助]监控压缩文件,并解压  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=109168)

--  作者:天一生水
--  发布时间:2017/11/6 10:57:00
--  [求助]监控压缩文件,并解压

在老师的指导下,已实现选择文件夹以压缩格式发送给好友。

现在想实现接收端监控接收文件夹,如果有新的压缩文件进入文件夹,就解压它,然后删除压缩文件,保留获取解压的文件夹。

遇到两个问题:

1、在文件监视器中不识别相对路径:ProjectPath & "\\QQClient\\ReceivedFiles";
2、不能监控子文件夹,但是在上述目录中的子目录是按照月份创建的,不固定。

 

文件监控器代码如下:

For Each f As String In FileSys.GetFiles(ProjectPath & "\\QQClient\\ReceivedFiles")    \'遍历文件夹中的Zip文件
If FileSys.GetName(f) Like "*.zip" Then     ’如果有就解压到当前文件夹
    Dim zip As New zipFile
    zip.Open(f)
    zip.ExtractAll("ProjectPath & "\\QQClient\\ReceivedFiles")
    zip.Close()
    FileSys.DeleteFile(f,2,2)                        ’然后删除压缩文件

End If
Next

 

这种方式是否可行?或者有没有别的方法,请老师指教。

谢谢!


--  作者:有点甜
--  发布时间:2017/11/6 12:10:00
--  

1、识别的

 

With FileWatcher
    .Path = ProjectPath & "QQClient\\ReceivedFiles"
    .Delay = 1000
    .Enabled = True
End With

 

或者下面这样

 

With FileWatcher
    .Path = ProjectPath
    .Delay = 1000
    .Enabled = True
End With

 

2、目录下的所有文件,都能监视。你代码处理有问题。你加入msgbox(e.fullpath)看看

 

3、如果想单独做一个按钮,把所有zip文件解压,参考 http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=107338&skin=0

 

 

 


--  作者:天一生水
--  发布时间:2017/11/7 11:03:00
--  

按照老师提示,重写代码如下,基本达到要求,代码也运行、并执行完毕,只是运行监视代码时,提示压缩文件内的文件被占用,怎样处理:

项目事件 AfterOpenProject:
With FileWatcher
    .Path = ProjectPath & "QQClient\\ReceivedFiles"
    .Delay = 1000
    .Enabled = True
End With

 

文件监视器FileCreated:

If FileSys.GetName(e.FullPath) Like "*.zip" Then     \'如果有压缩文件就解压到当前文件夹
    Dim zip As New zipFile
    zip.Open(e.FullPath)
    Dim ifo As new FileInfo(e.FullPath)
    Dim s As String = ifo.Name
    zip.ExtractAll(ifo.Path & "\\" & s.substring(0,s.LastIndexOf(".")))    \'解压到以压缩文件名为名称的文件夹下   

    zip.Close()
    \'FileSys.DeleteFile(e.FullPath,2,2)                       \'然后删除压缩文件-这句不用,否则在QQ窗口找不到发送的文件
End If

 


图片点击可在新窗口打开查看此主题相关图片如下:截屏图片.jpg
图片点击可在新窗口打开查看
[此贴子已经被作者于2017/11/7 11:04:43编辑过]

--  作者:有点甜
--  发布时间:2017/11/7 11:41:00
--  

1、解压文件是否正常?只是删除文件有问题?

 

2、每一个zip都是这样还是说只有某个这样?

 

3、你可以另外写一个定时器,定时删除zip文件。