使用c#计算Zip文件中的文件数

我正在生成一些.csv文件,我需要在Zip文件中压缩它。 好吧,我有一个框架来做这个,可能一切都会好的。

但! 正如TDD所说,我可以编写代码,经过一些测试!

我的第一个测试听起来很简单,但是我在阅读Zip文件时遇到了一些问题,有人知道一种简单的方法来计算我的zip文件中的文件数量吗?

你好像在寻找像DotNetZip这样的东西 。

编辑 :例如:

int count; using (ZipFile zip = ZipFile.Read(path)) count = zip.Count; 

我不认为这是你提出的TDD问题,但无论如何我都会回答。

 [测试]
 public void countsNumberOfFilesInZip(){
   var counter = new FileCounter(“existing_archive_with_2_files.zip”);
   AssertEqual(2,counter.count());
 }

现在,使用您选择的库,使FileCounter工作。 一旦它工作并且你有一个通过测试,如果你这样选择,重构代码,以便它使用一个模拟框架来模拟对zip库的调用。 现在您没有对文件系统的依赖。 (除非你的测试因磁盘I / O而减慢太多,否则我可能不会走得这么远)

或者使用SharpZipLib并查看此示例