如何从c#中的未压缩zip读取文件?

时间:2008-11-05 15:47:49

标签: c# compact-framework zip

我正在创建一个PDA应用程序,我需要上传/下载大量小文件,我的想法是将它们收集在未压缩的zip文件中。

问题是:从zip 读取这些文件而不将它们分开是个好主意?我怎么能这样做?还是更好地解压缩它们?由于文件没有被压缩,我的简单思维点可能从zip中读取它或多或少与直接从文件系统中读取它们一样有效。

谢谢你的时间!

3 个答案:

答案 0 :(得分:4)

由于有两个不同的开源库(SharpZipLibDotNetZip Library)来处理写作&从zip文件中提取文件,为什么要担心自己做呢?

答案 1 :(得分:1)

ewww - 不要使用J#。

从v1.7开始,DotNetZip库在.NET Compact Framework 2.0及更高版本上运行。它可以处理在ZIP存档中读取或写入压缩或未压缩的文件。源代码分发包括CF示例应用程序。这很简单。

答案 2 :(得分:0)

听起来好像要使用存档来分组文件。

读取文件的角度来看,如果文件是以某种方式处理的话,那就差别很小。但是,您需要实现读取zip文件的功能。即使您使用像James Curran建议的lib,也意味着额外的工作,这可能意味着其他错误来源。

上传文件的角度来看,它更有意义:上传者可以收集所需的所有文件,并且只需要处理一次上传。这减少了开销和错误处理(如果一个uplaod失败,你是否必须删除已经上传的该组的所有文件?)。

至于从档案中读取它们的效率与直接从光盘中读取它们的效率:差别应该是最小的。您(或您的zip库)需要一次解析zip目录结构,这非常简单。其余的是将文件的一部分读入内存而不是将文件读入内存。