35
using (ZipFile zip = new ZipFile())
{
    foreach(string file in Directory.GetFiles(folder))
    {
        zip.AddFile(file, Path.GetFileName(file));
    }
    zip.Save("test.zip"));
}

ファイルを追加するたびに、新しいサブフォルダーが作成されます。

だから私は次のようになりたい:

test.zip
    -  myDoc.doc
    -  myPdf.pdf

しかし、私は次のようになります:

test.zip
    -  myDoc.doc
        -  myDoc.doc
    -  myPdf.pdf
        -  myPdf.pdf
4

4 に答える 4

76

ちょうどどうですか:

zip.AddFile(file,"");

また

zip.AddFile(file,@"\");
于 2010-11-08T16:21:08.320 に答える
0

承認された答えは4年前だったので、ディレクトリ内のすべてのファイルを圧縮したい場合(上記のコードはそのように見えます)、これを行う別の方法(よりエレガント)は次のとおりです。

ZipFile.CreateFromDirectory(sourceDirectoryName, destinationArchiveFileName, compressionLevel, includeBaseDirectory)

最後のパラメーター (includeBaseDirectory) と false 値を渡すことに関心があります。

ここで見つけることができる詳細情報: CreateFromDirectory(String, String, CompressionLevel, Boolean)

于 2019-11-14T12:05:13.800 に答える
-3

これは私がやったことであり、うまくいきました。

zip.AddFile(file, "..\...\".ToString.Replace("..\...\", Nothing))

ファイルを 2 つのフォルダーに送り返し、.....\ を Nothing に置き換えます。

于 2014-04-29T15:16:48.333 に答える