1

これは私のアプリのコードです

 Response.ContentType = "application/zip";
            Response.AddHeader("content-disposition", "filename=" + "filename.zip");
            using (ZipFile zip = new ZipFile())
            {
                zip.AddEntry(@"F:\My Pictures\2011\DSC04854.jpg", @"\");
                zip.AddEntry(@"F:\My Pictures\2011\DSC04854.jpg", @"\");
                zip.AddEntry(@"F:\My Pictures\2011\DSC04854.jpg", @"\");
                zip.Save(Response.OutputStream);
            }
            Response.Close();

出力として書き込まれる単純化されたフォルダー構造(つまり1つのフォルダー)でzipファイルを作成したいと思います。

私は同様の質問に対するいくつかの答えを見てきました、そして私は多くの提案を試みました、しかし私は望ましい結果を得ることができません。このコードは、完全なフォルダー構造のzipファイルを生成します。

誰か助けてもらえますか?

4

3 に答える 3

1

AddEntryを使用しています。必要なのはAddFileです。AddFileの2番目のパラメーター(文字列の場合)は内部ディレクトリです。

于 2011-08-09T18:47:11.627 に答える
0

エントリをZipに追加する場合、2番目のパラメーターを空のままにして、ファイルをフォルダーのルートに配置することができます。

zip.AddEntry(link_to_file.format, string.Empty);
于 2011-08-09T18:49:42.407 に答える
0

私は同じ問題を抱えていましたが、zip.AddFiles(filePaths)それでも完全な階層のzipファイルを作成します。私はこの問題を単純に解決する別の過負荷に遭遇します。使用するだけです zip.AddFiles(filePaths,false,".") 。2番目のパラメーターは階層構造を保持します。3番目のパラメーターはzipファイルの作成に使用する構造です。を使用して

「。」ネストされたフォルダが許可されていないか、現在のフォルダを単に圧縮することを意味します!

于 2015-03-15T20:10:31.780 に答える