当前位置:编程学习 > C#/ASP.NET >>

怎样批量查找大量zip包里有无某个文件?

怎样批量查找大量zip包里有无某个文件?

例如,我想知道一批zip文件里面是否包含有文件:readme.txt,有则返回1,否则返回0。

希望能满足批量查询。

zip包有如下特点:

1、zip文件名中包含中文、空格,而且是长文件名;
2、zip包里有多个目录;

我知道可以通过zlib的某个函数来完成,就是不知道是哪个。

谢谢老师们!

还有,听说用SharpZipLib.dll也行,c#代码如下,不知vb怎么写?


using (ZipInputStream s = new ZipInputStream(File.OpenRead(args[0]))) {

ZipEntry theEntry;
while ((theEntry = s.GetNextEntry()) != null) {

  if(FileName==theEntry.Name)
  {
return true;
}



}
}

要用到ICSharpCode.SharpZipLib.dll 

我还知道,有位高手开发了一个QuickZIP,用的还是ICSharpCode.SharpZipLib.dll,可以简单的使用。
http://blog.csdn.net/ZIP_xG/archive/2010/07/24/5761592.aspx --------------------编程问答-------------------- 来往的人不少啊,没人关注,顶上去。 --------------------编程问答-------------------- 继续顶上去,希望高手关注 --------------------编程问答-------------------- --------------------编程问答-------------------- 给你个简洁的办法:
1.安装个winrar.目录里面有个rar.exe
2.调用
C:\>D:\Program Files\WinRAR\rar.exe lb sql.rar
sql.txt
安装序列号.txt
EE_hh.rar

写个程序执行命令,获取文件列表.然后再根据规格比对文件名称 --------------------编程问答-------------------- 感谢楼上关注!但这个不是我希望的。

希望:

设置循环,每次读入一个zip,获取包里的文件信息,检查文件列表里有无那个文件,返回结果。这些都在内存里进行;

QuickZIP是符合要求的,我就是不知怎么用,作者1年多没来这里了:
http://blog.csdn.net/zip_xg/article/details/5764299 --------------------编程问答-------------------- 顶上去,求解决!! --------------------编程问答-------------------- vb和c# 有差吗?http://www.developerfusion.com/tools/convert/csharp-to-vb/ --------------------编程问答-------------------- 谢谢您,这个转换不错,但问题还是没有解决。 --------------------编程问答-------------------- 顶上去希望有高手指导! --------------------编程问答-------------------- 顶上去,希望有高手给个例子啊 --------------------编程问答-------------------- 和caoqinghua的方法类似,不过我的是7zip
调用7zip,以archive为参数,读取每个包的archive的与你的readme.txt作比较
--------------------编程问答-------------------- 谢谢您,这个转换不错,但问题还是没有解决。  继续观察中 --------------------编程问答-------------------- SharpZipLib.dll这中方法没有问题,你把C#转成VB就可以了,如果自己不会转就去下个工具 --------------------编程问答--------------------
引用 11 楼  的回复:
和caoqinghua的方法类似,不过我的是7zip
调用7zip,以archive为参数,读取每个包的archive的与你的readme.txt作比较


谢谢您,可以展示您的实例么,这将对我有莫大的帮助! --------------------编程问答-------------------- 持之以恒的顶上去,寻求答案啊 --------------------编程问答-------------------- 神奇!7楼的神奇工具转换后的结果:

Using s As New ZipInputStream(File.OpenRead(args(0)))

Dim theEntry As ZipEntry
While (InlineAssignHelper(theEntry, s.GetNextEntry())) IsNot Nothing

If FileName = theEntry.Name Then
Return True



End If
End While
End Using


哪位可以解释一下呢,谢谢!
补充:.NET技术 ,  VB.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,