CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
IBM Rational 系统开发最佳实践工具包 WebSphere MQ 最佳实践 TOP 15
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VB >  API

【问】如何查找Zip包内部文件内容?

楼主VBAHZ(凌云(E文词汇量580))2006-03-10 17:11:23 在 VB / API 提问

比如我想把aaa.zip中含有字符串abc的文件列出来,  
  由于压缩包里文件可能众多,所以要有实时进度显示,还要能中断。  
   
  请问,该如何做?  
   
  不想使用第三方控件,除非是纯动态库。  
  问题点数:20、回复次数:11Top

1 楼mjcom(不明飞行物)回复于 2006-03-17 09:45:07 得分 4

安装WinZIP后,安装目录就有一个动态连接库,是用来查看和解压文件的.XP以上的系统自身也带有解压ZIP文件的动态库,应该可以利用Top

2 楼of123()回复于 2006-03-17 10:03:52 得分 4

实际上,需要解压成临时文件,在其中搜索,然后删除临时文件。  
   
  你可以在循环过程中,对临时文件逐段搜索(利用   Instr   函数),这样就可以显示进度和接受中断(通过   DoEvents)。Top

3 楼of123()回复于 2006-03-17 10:12:42 得分 3

另,不需要安装   Winzip,将   Wzunzip.exe   命令行程序打包到安装文件中,通过   Shell   函数调用就可以解压了。  
   
  下载地址:http://www.winzip.com/downcl.htmTop

4 楼VBAHZ(凌云(E文词汇量580))回复于 2006-03-19 00:13:36 得分 0

这样也太慢了吧?有人试过Rar吗?  
  它的搜索好像不是打开包的吧?  
  用的应该是专门的算法,在万条文件里搜索字符仅用了5秒钟(结果有200多条),  
  实践对比,即使在不压缩的情况下,用读取文件的办法也达不到这个速度的,  
  所以只可能在压缩包里用算法才更快(指没有二次压缩的文本文件)因为它只把压缩包当成一个文件看。  
  难道,Zip包就没有这个查找包内数据的功能了吗?  
   
  实际上,我有过一次教训,有一个10M左右的Rar包(8千多个文本文件),压缩用了4分多钟,  
  而纯释放竟然要用5分多钟,晕了,解开后再去搜的话又不知要用N分钟了,然后还要删除临时文件,忒麻烦了,而就是这个包,Dos版的Rar仅用了5秒钟就搜索完毕了,  
  还有谁怀疑它是用释放后搜索的?  
   
  Zip包应该比Rar包的算法速度上快一点吧?但要是全部解开后再找,那。。。  
   
  死Rar   就是不支持Zip包(DOS版)讨厌  
  Top

5 楼VBAHZ(凌云(E文词汇量580))回复于 2006-03-19 00:22:33 得分 0

实际上我猜测,就Rar的搜索方式,可能是根据实际的Rar包的特性,直接把要搜索的字符转为压缩后的特征码,这样,就可以直接在一个压缩包里对比二进制数据了,找到后再把此段数据所属的源文件索引列出,而不需要真的去解码,  
  是解码N个文件快呢,还是压缩一串字符快呢?  
  这就是根本区别,速度当然快了N倍啦  
   
  我不是不会解压Zip包,本主题就是希望能找到类似Rar的快速搜索方式。  
   
  不知道有没有?  
  (之所以不用Rar包是有原因的,请不用提它了,但Rar的方式可以借鉴)  
  Top

6 楼kmlxk(xiaoKKKK)回复于 2006-03-19 09:11:26 得分 2

学习。。。  
   
  LZ把WinRAR逆向工程看看嘛   :PTop

7 楼VBAHZ(凌云(E文词汇量580))回复于 2006-06-17 20:03:56 得分 0

晕Top

8 楼northwolves(狼行天下)回复于 2006-06-17 20:32:30 得分 4

http://www.codeguru.com/vb/gen/vb_graphics/fileformats/article.php/c6743Top

9 楼northwolves(狼行天下)回复于 2006-06-17 20:40:17 得分 3

http://www.mikekohn.net/kunzip.phpTop

10 楼VBAHZ(凌云(E文词汇量580))回复于 2006-06-17 20:41:34 得分 0

若若的问一句,老大,这是不是查找文件二进制内容的呢?  
   
  Top

11 楼VBAHZ(凌云(E文词汇量580))回复于 2006-07-06 02:47:38 得分 0

GZTop

相关问题

  • 查找文件
  • 查找文件
  • 文件查找
  • 急救:如何查找文件?包括子目录!
  • XP的查找时怎样绕过zip文件?
  • 查找隐藏文件?
  • 文件查找的问题
  • 如何查找文件?
  • 文件内容的查找
  • 文件查找问题?

关键词

  • 文件
  • zip
  • 算法
  • 字符
  • 安装
  • winzip
  • 数据
  • 包
  • 压缩
  • rar

得分解答快速导航

  • 帖主:VBAHZ
  • mjcom
  • of123
  • of123
  • kmlxk
  • northwolves
  • northwolves

相关链接

  • Visual Basic类图书
  • Visual Basic类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo