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
どうですか:
Zip.AddFile(file,"");
または
Zip.AddFile(file,@"\");
承認済みの回答が4年前だったため、これを行うにはもう1日(よりエレガント)な方法です。ディレクトリ内のすべてのファイルを圧縮したい場合(上のコードはそのように見えます)、次のように使用できます。
ZipFile.CreateFromDirectory(sourceDirectoryName, destinationArchiveFileName, compressionLevel, includeBaseDirectory)
最後のパラメーター(includeBaseDirectory)とfalse値を渡すことに関心があります。
あなたがここで見つけることができるより多くの情報: CreateFromDirectory(String、String、CompressionLevel、Boolean)