【问题标题】:Creating a zip file with ionic.zip使用 ionic.zip 创建一个 zip 文件
【发布时间】:2013-02-23 20:10:27
【问题描述】:

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

【问题讨论】:

标签: c# zipfile ionic-zip


【解决方案1】:

documentation 声明第三个参数

directoryPathInArchive(字符串)
指定用于覆盖文件中任何路径的目录路径 姓名。此路径可能对应于,也可能不对应于 当前文件系统。如果 zip 中的文件稍后被提取, 这是用于提取文件的路径。传递空值(什么都没有 VB) 将使用每个文件名上的路径,如果有的话。通过 空字符串 ("") 将在根路径中插入项目 存档。

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

loanZip.AddFiles(documentPaths, false, zipDestinationPath);

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多