是否有任何用于处理zip文件的库,就好像它们只是目录一样?即获取文件列表,读取文件等
我更喜欢C中的某些内容,但任何其他语言都可以。
此外,如果这样的库可以处理其他压缩格式(rar,7z等),它会有所帮助。
答案 0 :(得分:3)
Python standard library拯救(稍微修改自here):
>>> import zipfile
>>> z = zipfile.ZipFile('/path/to/zip/file.zip', 'r')
>>> for filename in z.namelist():
... print filename
... bytes = z.read(filename)
... print len(bytes)
file/1.dat
75776
file/2.dat
38912
file/3.dat
40960
答案 1 :(得分:3)
答案 2 :(得分:2)
有SharpZipLib,可用于c#。
答案 3 :(得分:2)
对于Java,您可以考虑TrueZIP,关于“将zip文件作为简单目录处理”:
对于“其他压缩格式”,文档说“TrueZIP附带ZIP,TAR和所有衍生产品的存档驱动程序(JAR,TAR.GZ,TAR.BZ2,TZP,...)。”没有我知道的rar。
它有一个(开源)Apache许可证。
答案 4 :(得分:2)
Java的另一个选择是Apache Commons VFS project。
来自网站:
Commons VFS为其提供单一API 访问各种不同的文件 系统。它呈现出统一的视角 各种不同的文件 来源,例如本地文件 磁盘,HTTP服务器或内部 Zip档案。
Commons VFS的一些功能 是:
- 用于访问不同类型文件的单一一致API。
- 支持多种文件系统类型。
- 缓存文件信息。在-JVM中缓存信息,并可选择在本地文件系统上缓存远程文件信息。
- 活动传递。
- 支持由来自各种不同文件系统的文件组成的逻辑文件系统。
- 用于将Commons VFS集成到应用程序中的实用程序,例如支持VFS的ClassLoader和URLStreamHandlerFactory。
- 一组启用了VFS的Ant任务。
答案 5 :(得分:1)
This article描述了这样做 - 将zip文件视为文件系统的扩展。它在C#中。使用DotNetZip。