当前位置:  开发笔记 > 编程语言 > 正文

如何在c#中列出.zip文件夹的内容?

如何解决《如何在c#中列出.zip文件夹的内容?》经验,为你挑选了5个好方法。

如何在C#中列出压缩文件夹的内容?例如,如何知道压缩文件夹中包含多少项,以及它们的名称是什么?



1> Chris Fulsto..:

DotNetZip - .NET语言中的Zip文件操作

DotNetZip是一个易于使用的小型类库,用于处理.zip文件.它可以使用VB.NET,C#(任何.NET语言)编写的.NET应用程序轻松创建,读取和更新zip文件.

用于读取zip的示例代码:

using (var zip = ZipFile.Read(PathToZipFolder))
{
    int totalEntries = zip.Entries.Count; 
    foreach (ZipEntry e in zip.Entries)
    {
        e.FileName ...
        e.CompressedSize ...
        e.LastModified...
    }
}



2> Csaba Toth..:

.NET 4.5或更新版本最终具有内置功能来处理类的通用zip文件System.IO.Compression.ZipArchive(http://msdn.microsoft.com/en-us/library/system.io.compression.ziparchive%28v=vs.110% 29.aspx)在程序集System.IO.Compression中.不需要任何第三方库.

string zipPath = @"c:\example\start.zip";
using (ZipArchive archive = ZipFile.OpenRead(zipPath))
{
    foreach (ZipArchiveEntry entry in archive.Entries)
    {
        Console.WriteLine(entry.FullName);
    }
} 


没有第三方组件,工作正常,开箱即用.一定要添加引用`System.IO.Compression.dll`和`System.IO.Compression.FileSystem.dll`.

3> Adrian Clark..:

如果您使用的是.Net Framework 3.0或更高版本,请查看System.IO.Packaging命名空间.这将删除您对外部库的依赖性.

具体来看看ZipPackage类.



4> Chris Ballan..:

检查SharpZipLib

ZipInputStream inStream = new ZipInputStream(File.OpenRead(fileName));

while (inStream.GetNextEntry())
{

     ZipEntry entry = inStream.GetNextEntry();
     //write out your entry's filename
}



5> Cheeso..:

Ick - 使用J#运行时的代码很可怕!而且我不同意这是最好的方式 - 现在J#已经失去了支持.如果你想要的只是ZIP支持,它是一个巨大的运行时.

怎么样 - 它使用DotNetZip(免费,MS-Public许可证)

using (ZipFile zip = ZipFile.Read(zipfile) )
{
    bool header = true;
    foreach (ZipEntry e in zip)
    {
        if (header)
        {
            System.Console.WriteLine("Zipfile: {0}", zip.Name);
            if ((zip.Comment != null) && (zip.Comment != ""))
                System.Console.WriteLine("Comment: {0}", zip.Comment);

            System.Console.WriteLine("\n{1,-22} {2,9}  {3,5}   {4,9}  {5,3} {6,8} {0}",
                                     "Filename", "Modified", "Size", "Ratio", "Packed", "pw?", "CRC");
            System.Console.WriteLine(new System.String('-', 80));
            header = false;
        }

        System.Console.WriteLine("{1,-22} {2,9} {3,5:F0}%   {4,9}  {5,3} {6:X8} {0}",
                                 e.FileName,
                                 e.LastModified.ToString("yyyy-MM-dd HH:mm:ss"),
                                 e.UncompressedSize,
                                 e.CompressionRatio,
                                 e.CompressedSize,
                                 (e.UsesEncryption) ? "Y" : "N",
                                 e.Crc32);

        if ((e.Comment != null) && (e.Comment != ""))
            System.Console.WriteLine("  Comment: {0}", e.Comment);
    }
}

推荐阅读
php
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有