我使用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中的所有文件而不存档中的任何文件夹。我怎么能实现它?
答案 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存档的根目录中包含所有文件。执行此操作时,请注意没有相同名称的文件。它将为重复的文件名抛出异常。