【发布时间】:2013-08-28 05:17:53
【问题描述】:
请告诉我如何计算 ZIP 文件中的文件数。
我需要一个 C# 代码来在 Visual Studio 中完成这项工作。谷歌搜索时尝试了许多代码,但收到错误消息:
找不到 ZIPENTRY/ZIPFILE 的命名空间或程序集。
谁能告诉我我应该包含什么/需要安装什么/提供任何代码来计算文件数量?
【问题讨论】:
-
感谢 vadmin...我也在这里搜索过,但无法获得此链接
请告诉我如何计算 ZIP 文件中的文件数。
我需要一个 C# 代码来在 Visual Studio 中完成这项工作。谷歌搜索时尝试了许多代码,但收到错误消息:
找不到 ZIPENTRY/ZIPFILE 的命名空间或程序集。
谁能告诉我我应该包含什么/需要安装什么/提供任何代码来计算文件数量?
【问题讨论】:
正如 MSDN 所说(.Net 4.5),您可以使用 ZipArchive 和 ZipFile 类:
http://msdn.microsoft.com/en-us/library/system.io.compression.ziparchive.aspx http://msdn.microsoft.com/en-us/library/system.io.compression.zipfile.aspx
同时在 System.IO.Compression 命名空间中的类位于不同的程序集中 System.IO.Compression 和 System.IO.Compression.FileSystem。
因此您可以在项目中添加对 System.IO.Compression 和 System.IO.Compression.FileSystem 程序集的引用,然后尝试以下操作:
...
using System.IO.Compression;
...
// Number of files within zip archive
public static int ZipFileCount(String zipFileName) {
using (ZipArchive archive = ZipFile.Open(zipFileName, ZipArchiveMode.Read)) {
int count = 0;
// We count only named (i.e. that are with files) entries
foreach (var entry in archive.Entries)
if (!String.IsNullOrEmpty(entry.Name))
count += 1;
return count;
}
}
另一种可能是使用 DotNetZip 库,请参阅:
【讨论】:
您必须将引用 System.IO.Compression 和 System.IO.Compression.FileSystem 添加到您的项目
using (var archive = System.IO.Compression.ZipFile.Open(filePath, ZipArchiveMode.Read))
{
var count = archive.Entries.Count(x => !string.IsNullOrWhiteSpace(x.Name));
}
【讨论】:
【讨论】: