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

Ric*_*ale 14 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;
    }
Run Code Online (Sandbox Code Playgroud)

我的问题是,当创建zip文件时,文件夹结构将保存在zip文件中:

例如

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

C:\ SoftwareDevelopment \分行\ ScannedDocuments \

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

文件夹1("SoftwareDevelopment")

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

文件夹2内是文件夹3("ScannedDocuments")

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

任何人都可以告诉我如何在没有维护文件夹路径的情况下将zip文件放在zip中?

Tre*_*reb 19

文件指出,第三个参数

directoryPathInArchive(String)
指定用于覆盖文件名中任何路径的目录路径.该路径可以或可以不对应于当前文件系统中的真实目录.如果稍后提取zip中的文件,则这是用于提取文件的路径.传递null(在VB中为Nothing)将使用每个fileNames上的路径(如果有).传递空字符串("")将在归档中的根路径中插入项目.

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

loanZip.AddFiles(documentPaths, false, zipDestinationPath);
Run Code Online (Sandbox Code Playgroud)

loanZip.AddFiles(documentPaths, false, "");
Run Code Online (Sandbox Code Playgroud)