如何在Web应用程序中解压缩并显示包含文件树的zip文件

时间:2011-12-07 14:58:17

标签: asp.net-mvc zip

我希望用户能够上传zip文件。然后我不想解压缩此文件并显示其内容。你会如何在asp.net mvc中实现这个?

1 个答案:

答案 0 :(得分:1)

在.NET中有很多处理压缩档案的解决方案,以下主题涵盖了几个选项:Unzip files programmatically in .net

DotNetZip似乎在Codeplex上非常受欢迎。我在他们的文档中找到了这个代码示例,用于列出控制台应用程序上下文中给定存档中的所有条目。适应网络环境应该相当容易:

using (ZipFile zip = ZipFile.Read(ExistingZipFile))
{
    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,8}  {3,5}   {4,8}  {5,3} {0}",
                                 "Filename", "Modified", "Size", "Ratio", "Packed", "pw?");
            System.Console.WriteLine(new System.String('-', 72));
            header = false;
        }

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

如果没有实际测试,看起来这个特定的实现可能无法处理文件夹结构,因此您可能需要look through their documentation一点来获取更多信息。