0

我尝试更改现有的压缩工具。压缩工具目前使用 SharpZipLib。我必须将其转换为使用 SevenZipSharp。使用 SharpZipLib 进行压缩时,我可以更改 zip 的根目录,并且在使用 SevenZipSharp 时我想保留这个根目录。

所以如果我有例如绝对结构

C:/
├──root/
   └── folders/
       └── files/
           ├── text1.txt
           ├── text2.txt
           ├── text3.txt
           ├── text4.txt
           └── subfiles/
               └── text5.txt

然后我的 SevenSharpZip 将创建一个包含以下内容的 zip:

text1.txt
text2.txt
text3.txt
text4.txt
└── subfiles/
    └── text5.txt  

SharpZipLib 将创建以下内容

root/
└── folders/
    └── files/
        ├── text1.txt
        ├── text2.txt
        ├── text3.txt
        ├── text4.txt
        └── subfiles/
            └── text5.txt

是否可以为 SevenZipSharp 设置一个根目录,以便我的两个拉链具有相同的内部结构?我还没有找到相应地更改它的设置。IncludeEmptyDirectoryPreserveDirectoryRootDirectoryStructure没有得到我需要的结果。

4

1 回答 1

0

我找到了答案。要设置根文件夹,我必须使用该方法

public void CompressFiles(string archiveName, int commonRootLength, params string[] fileFullNames)

我们有commonRootLength. 这是我们共同根源的起点。对于我上面的示例,这意味着公共根在第一个“/”之后开始,这意味着commonRootLenght参数需要为 3。

于 2020-03-20T08:05:25.197 回答