不解压zip压缩包怎么获取里面的文件

triggerman 发布于 2013/07/15 15:24
阅读 2K+
收藏 0
         现在的word(.docx)的格式是zip压缩包形式的,zip压缩包内有很多文件,其中包括.XML。我想解析word(.docx)文档,所以想提取出来.XML文件进行解析,用C代码实现,不知道可以不可以,请大侠们指导!!!
加载中
0
王瑞平
王瑞平
只知道java是可以的
triggerman
triggerman
谢谢!!!java我不太懂!!!现在要用C代码实现!!!
0
平原君
平原君
zip可以直接内存中解压缩的,c的话,有zlib库可以使用
平原君
平原君
回复 @triggerman : 搜索下zlib的使用文档,一堆的介绍,zlib的包里也有示例代码的
triggerman
triggerman
回复 @triggerman : 我不知道从哪着手???
triggerman
triggerman
回复 @平原君 :谢谢!!! 我看看,不懂的在请教你!!!
平原君
平原君
回复 @triggerman : 你去下载下zlib的包,一看就明白了,还是很简单的
triggerman
triggerman
谢谢!!!能说详细点吗???
0
小耶果
小耶果
不解压是不可以的,解压可以解压到文件I/O,也可以解压到内存.zLib的话可以使用uncompress函数,头二个参数就是目标内存地址和长度.
triggerman
triggerman
谢谢!!!我之前没有接触过,能给我介绍点参考资料吗???
0
figer1
figer1

zip有文件索引,可以通过C API读出所有文件的列表,不过zlib本身并不直接支持zip格式,可以使用 minizip 。提取zip中某个文件的AAuto代码:

import zlib.unzip;
var unzip = zlib.unzip("/my.zip","解压目录")

//遍历zip包中的所有文件
for( pos,dirName,fileName,extractPath,fileInfo in unzip.eachFile() ){  
	if( dirName ) continue;

	//解压文件到内存
	for(buffer,readSize in unzip.eachReadCurrentFile(password) ){
		//file.writeBuffer(buffer,readSize); //保存到硬盘
	}
}

triggerman
triggerman
谢谢!!!您这个是用java写的吗??
0
小隐隐于市
小隐隐于市
ZipInputStream取流然后ZipEntry zipEntry1 = zipInputStream1.getNextEntry();即可取得压缩包内的第一个文件流然后按需要的来解析 zipEntry1 
triggerman
triggerman
不太明白,小弟求详细介绍!!!谢谢!!!
0
YYXX007
YYXX007
ZipInputStream 可以的
triggerman
triggerman
这位大侠你之前接触过???能给小弟详细说一下吗???谢谢!!!
返回顶部
顶部