DotNetZip的用法

时间:2015-11-12 06:08:55

标签: c# dotnetzip

我使用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中的所有文件而不存档中的任何文件夹。我怎么能实现它?

1 个答案:

答案 0 :(得分:0)

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存档的根目录中包含所有文件。执行此操作时,请注意没有相同名称的文件。它将为重复的文件名抛出异常。