1

我目前正在进行一个小项目,我必须定义几个需要压缩到一个 zip 文件中的路径。

现在是以下情况:其中一个路径是一个目录,它应该被递归压缩(包括它包含的所有文件和子文件夹)。在我压缩之前,我检查了几件事,包括权限。如果要压缩的当前用户没有文件或文件夹的权限,则应将其排除。

现在如何才能在递归模式下排除多个文件和目录?

我已经尝试过这样的事情,但争论似乎只存在于cmd中。

compressor.CustomParameters.Add("-x", "@C:\\Users\\******\\Desktop\\exclude.txt");
4

2 回答 2

1

我没有发现使用 SevenZipSharp 排除文件的任何可能性。相反,我现在使用 DotNetZip,它具有删除文件的好方法: ZipFile.RemoveEntry()例如ZipFile.RemoveEntries()

foreach (string removePath in Verifier.ExcludePaths)
{
    try
    {
        // Remove files and directories to be excluded
        zipFile.RemoveEntry(removePath);
    }
    catch (Exception)
    {
        Logger.Warn("Could not exclude path \"{0}\".",removePath);
    }
}
于 2013-02-19T16:27:55.020 回答
0

我发现 SevenZipSharp 可以排除文件:

SevenZipCompressor sevenZipCompressor = new SevenZipCompressor();
sevenZipCompressor.ModifyArchive(archiveName, dictionary);
// string archiveName: archive name
// Dictionary<int Index, string NewFileName>: NewFileName or Null value to delete the corresponding index. 
于 2017-12-06T00:49:28.877 回答