2

ASP.NET 2.0 では、ファイルと共に複数のフォルダーを取得する必要があります。私たちの要件は、すべてのフォルダーを取得し、1 つの zip ファイルを作成する必要があることです。誰でもこれについて私を助けることができますか?

ありがとう。

4

2 に答える 2

0
  1. SharpZipLibをダウンロードします。これは、最も人気のある zip ライブラリの 1 つです。
  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 に答える
0

DotNetZipを確認してください。これは非常に柔軟であり、パフォーマンスは実稼働環境に十分すぎるほどです。

Scott Mitchell は、DotNetZip を使用した ASP.Net 環境での圧縮の優れた例を示しています。

于 2013-02-10T15:20:36.030 に答える