使用ionic.zip创建一个zip文件

时间:2013-03-08 10:03:41

标签: c# zipfile ionic-zip

我设置了以下代码来创建一组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

我正在创建位于

的一系列文档的zip
  

C:\ SoftwareDevelopment \分行\ ScannedDocuments \

当打开创建的zip文件时,zip中有一个文件夹结构,如下所示:

文件夹1(“SoftwareDevelopment”)

内部文件夹1是文件夹2(“分支”)

内部文件夹2是文件夹3(“ScannedDocuments”)

扫描的文档文件夹然后包含实际的扫描文件。

有人能告诉我如何在不保留文件夹路径的情况下将zip文件放在zip中吗?

1 个答案:

答案 0 :(得分:18)

documentation表示第三个参数

  

directoryPathInArchive(String)
  指定用于覆盖文件中任何路径的目录路径   名称。此路径可能或可能不对应于中的真实目录   当前的文件系统。如果稍后提取zip中的文件,   这是用于提取文件的路径。传递null(Nothing in   VB)将使用每个fileNames上的路径(如果有的话)。通过   空字符串(“”)将在项目的根路径中插入项目   档案

因此,如果您始终希望将文件添加到zip存档的根目录,请更改

loanZip.AddFiles(documentPaths, false, zipDestinationPath);

loanZip.AddFiles(documentPaths, false, "");