17

我设置了以下代码来创建一组文档的 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 文件中维护:

例如

我正在创建一个选择的文件的 zip,位于

C:\SoftwareDevelopment\Branches\ScannedDocuments\

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

文件夹 1(“软件开发”)

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

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

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

谁能告诉我如何在不维护文件夹路径的情况下将扫描文件放在 zip 中?

4

1 回答 1

23

文档指出第三个参数

directoryPathInArchive (String)
指定用于覆盖文件名中任何路径的目录路径。此路径可能对应于当前文件系统中的真实目录,也可能不对应。如果稍后解压缩 zip 中的文件,则这是用于解压缩文件的路径。传递 null(在 VB 中为 Nothing)将使用每个文件名上的路径(如果有)。传递空字符串 ("") 将在存档的根路径中插入项目。

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

loanZip.AddFiles(documentPaths, false, zipDestinationPath);

loanZip.AddFiles(documentPaths, false, "");
于 2013-03-08T10:14:53.667 回答