找回密码
 加入
搜索
查看: 6019|回复: 9

[系统综合] 求助:如何解析一个zip包,如处理包头和包注释

  [复制链接]
发表于 2011-10-26 10:59:19 | 显示全部楼层 |阅读模式
大家好,现在的问题是如何能解析一个zip格式的压缩包,判断它是否完整,提取它的注释。我本想通过包头来提取包中实际文件长度,然后再读取注释,但是无法获取包头信息,而且zip包我们这里的情况是不能用md5检验,所以求网友给一个思路,如何解析?如何提取注释?如何获取包头?如何检验包是否完整!~
 楼主| 发表于 2011-10-26 11:07:38 | 显示全部楼层
我看了有zip.au3这个udf,但是不能满足我的要求,有没有什么DLL呢?
 楼主| 发表于 2011-10-26 15:20:38 | 显示全部楼层
没有人清楚吗?
发表于 2011-10-26 16:15:20 | 显示全部楼层
这个还真的没有研究过,不懂,无能为力啊!
 楼主| 发表于 2011-10-26 16:25:44 | 显示全部楼层
回复 4# xms77


    thank you all the same!~
如何能校验一个包是否完整呢?
发表于 2011-10-26 16:40:29 | 显示全部楼层
可以换个思路,能用其它软件吗? 考虑用winrar的 rar.exe  t   校验压缩文件, rar.exe  cw 获取注释  再处理成你想要的。
发表于 2011-10-26 16:44:05 | 显示全部楼层
回复 5# wanghongyang
以下是网上搜来的
--------以下--------------------------------------------------------------------------------------------
如何检验Zip 文件有没有损坏?   
  A:校验保存在Zip压缩包中的应用程序是我们经常需要从事的操作之一,很多朋友会采取利用WinZip等软件将压缩包中的文件释放到某个临时文件夹中,然后加以安装、运行、调试,最后再手工删除相应临时文件的方法。其实我们完全不必如此费尽周折,利用WinZip的校验功能即可轻易解决这一问题。         校验功能是WinZip的一项重要功能,它主要是用于直接将某个Zip压缩包解压、释放到用户指定的临时文件夹中,然后再自动在Windows的开始菜单中为这些释放后的文件建立对应的快捷方式,这样用户就可以方便的对压缩包中的文件进行安装、运行、调试了。最后WinZip还可以根据用户的需要自动删除释放到临时文件夹中的文件以及在开始菜单中为它们所建立的快捷方式,也就是说我们只需利用一个校验功能即可完成整个ZIP压缩包的释放、安装运行、删除等全部操作,从而极大的方便了我们使用。利用WinZip的校验功能快速安装、调试ZIP压缩包中的有关应用程序的具体步骤如下:        (1)启动WinZip,打开需要调试的ZIP压缩包(或者直接在资源管理器中双击相应的Zip文件即可)。       (2)执行“操作→检验”命令打开“校验”对话框,这里的“文件夹”对话框用于选择将需要调试的Zip压缩包释放到哪个临时文件夹中,在此可以选择某个已有的文件夹、也可创建一个新的文件夹;“组名称”设置框用于设置在Windows开始菜单中建立快捷方式时采用的程序组名称;“最大图标”设置框用于限制最多可在Windows的开始菜单中为多少个文件设置快捷方式。         (3)单击“确定”按钮关闭检验窗口,此时WinZip就会自动将相应的Zip压缩包解压释放到用户选定的临时文件夹中,调试在Windows的开始菜单中创建一个新的程序组,并自动在该程序组中为刚释放到临时文件夹中的每个程序文件及文档文件分别建立一个快捷方式,这样我们就可以直接利用它们调试相应程序的运行效果了,不过这时候不要关闭WinZip主窗口。        (4)调试完毕之后,我们既可保留该应用程序继续使用,又可对不满意的程序予以删除。比如当我们执行“文件→关闭文档”命令来关闭这个Zip压缩包时候,WinZip会弹出对话框询问你是否删除释放到临时文件夹中的应用程序,如果选择“否”,则WinZip就会直接退出而不进行其他操作,这个应用程序也就保留了下来;若是选择了“是”,WinZip会自动删除释放到临时文件夹中的所有文件,然后再将开始菜单中新建立的程序组及相应快捷方式也一并删除,这就使得系统恢复到了校验Zip压缩包之前的状态,而没有留下任何痕迹,从而免去了我们手工操作之苦。         这样我们就完成了利用WinZip校验保存在Zip压缩包中的应用程序的工作,整个操作步骤极为简便,而且我们对整个校验过程的运行状况有着极大的自主控制权,因而其效果非常好。
发表于 2011-10-26 16:44:47 | 显示全部楼层
Abbrivia或者XCeedZip就可以实现
发表于 2011-10-26 21:39:08 | 显示全部楼层
看楼主折腾两天了就不知道下面这个办法合适否?把命令行转用au3执行再作一些字符串处理就好了。


D:\>"c:\Program Files\7-Zip\7z.exe" l -slt note.zip

7-Zip 4.66 alpha  Copyright (c) 1999-2009 Igor Pavlov  2009-03-22

Listing archive: note.zip

----
Path = note.zip
Type = Zip

----------
Path = note.txt
Folder = -
Size = 56
Packed Size = 56
Modified = 2011-09-04 12:56:50
Created =
Accessed =
Attributes = ....A
Encrypted = -
Comment =
CRC = CDC66619
Method = Store
Host OS = FAT
发表于 2011-10-26 21:57:55 | 显示全部楼层
楼上的真是热心人!
这样完全能达到楼主的目的了!
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-6-17 07:35 , Processed in 0.078441 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表