web-dev-qa-db-ja.com

DotNetZipはフォルダーを作成せずにファイルを追加します

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
34

どうですか:

Zip.AddFile(file,"");

または

Zip.AddFile(file,@"\");
70
Fosco

承認済みの回答が4年前だったため、これを行うにはもう1日(よりエレガント)な方法です。ディレクトリ内のすべてのファイルを圧縮したい場合(上のコードはそのように見えます)、次のように使用できます。

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

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

あなたがここで見つけることができるより多くの情報: CreateFromDirectory(String、String、CompressionLevel、Boolean)

0