2

在 ASP.NET 2.0 中,我们需要获取多个文件夹及其文件。我们的要求是获取所有文件夹并需要创建一个 zip 文件。任何人都可以在这方面帮助我。

谢谢。

4

2 回答 2

0

查看DotNetZip - 它非常灵活,性能对于生产环境来说绰绰有余。

Scott Mitchell 有一个在 ASP.Net 环境中使用 DotNetZip 进行压缩的绝佳示例

于 2013-02-10T15:20:36.030 回答
0
  1. 下载SharpZipLib,它是比较流行的 zip 库之一
  2. 添加对 ICSharpCode.SharpZipLib.dll 的引用

您可以在下载 SharpZipLib 时浏览代码示例,以了解如何压缩和解压缩文件,这是一个示例:

    public static void Main(string[] args)
    {
        ZipFiles("D:\\SharpZip","D:\\Zipped.zip");
    }

    private static void ZipFiles(string inputDirectory, string outputDirectory)
    {
        if (Directory.Exists(inputDirectory))
        {
            string[] filenames = Directory.GetFiles(inputDirectory);

            using (ZipOutputStream zipStream = new ZipOutputStream(File.Create(outputDirectory)))
            {
                zipStream.SetLevel(9);
                byte[] buffer = new byte[4096];

                foreach (string file in filenames)
                {
                    ZipEntry entry = new ZipEntry(Path.GetFileName(file));
                    entry.DateTime = DateTime.Now;
                    zipStream.PutNextEntry(entry);
                    using (FileStream fs = File.OpenRead(file))
                    {
                        int sourceBytes;
                        do
                        {
                            sourceBytes = fs.Read(buffer, 0, buffer.Length);
                            zipStream.Write(buffer, 0, sourceBytes);
                        } while (sourceBytes > 0);
                    }
                }
                zipStream.Finish();
                zipStream.Close();
            }
        }
    }
于 2013-02-10T13:09:32.183 回答