我设置了以下代码来创建一组doucments的zip文件:
public bool CreateDocumentationZipFile(int documentIdentifier, string zipDestinationPath, IList<string> documentPaths)
{
bool zipped = false;
if (documentPaths.Count > 0)
{
using (ZipFile loanZip = new ZipFile())
{
loanZip.AddFiles(documentPaths, false, zipDestinationPath);
loanZip.Save(string.Format("{0}{1}.zip",zipDestinationPath, documentIdentifier.ToString()));
zipped = true;
}
}
return zipped;
}
我遇到的问题是,当创建zip文件时,文件夹结构将保存在zip文件中:
e.g
我正在创建位于
的一系列文档的zipC:\ SoftwareDevelopment \分行\ ScannedDocuments \
当打开创建的zip文件时,zip中有一个文件夹结构,如下所示:
文件夹1(“SoftwareDevelopment”)
内部文件夹1是文件夹2(“分支”)
内部文件夹2是文件夹3(“ScannedDocuments”)
扫描的文档文件夹然后包含实际的扫描文件。
有人能告诉我如何在不保留文件夹路径的情况下将zip文件放在zip中吗?
答案 0 :(得分:18)
documentation表示第三个参数
directoryPathInArchive(String)
指定用于覆盖文件中任何路径的目录路径 名称。此路径可能或可能不对应于中的真实目录 当前的文件系统。如果稍后提取zip中的文件, 这是用于提取文件的路径。传递null(Nothing in VB)将使用每个fileNames上的路径(如果有的话)。通过 空字符串(“”)将在项目的根路径中插入项目 档案
因此,如果您始终希望将文件添加到zip存档的根目录,请更改
loanZip.AddFiles(documentPaths, false, zipDestinationPath);
到
loanZip.AddFiles(documentPaths, false, "");