Usage of DotNetZip

本文关键字:DotNetZip of Usage | 更新日期: 2023-09-27 18:21:33

我正在使用DotNetZip库压缩文件。我的代码在下面

String[] filenames = { "D:''Data''ReadMe.txt", "c:''data''collection.csv","c:''ProgramFiles''reports AnnualSummary.pdf"};
using (ZipFile zip = new ZipFile())
{
   zip.AddFiles(filenames, "files");
   zip.Save("Archive.zip");
}

现在,当创建Archive.zip时,档案中会为存储它们的文件创建具有相同名称的文件夹(例如Data、ProgramFiles等)。

我的目标是压缩Archive.zip中的所有文件,而不压缩归档中的任何文件夹。我怎样才能做到这一点?

Usage of DotNetZip

AddFiles有一个重载,用于压平zip归档中的目录结构

public void AddFiles(
    IEnumerable<string> fileNames,
    bool preserveDirHierarchy,
    string directoryPathInArchive
)

http://dotnetzip.herobo.com/DNZHelp/html/c64e89d3-2f1f-2886-16bc-291746b46718.htm

zip.AddFiles(filenames, false, "files");

第二个参数preserveDirHierarchy可以作为false传递,以使所有文件都位于zip存档的根目录中。执行此操作时,请注意不要有同名的文件。对于重复的文件名,它将引发异常。