在Code中使用SevenZipSharp排除文件

时间:2013-02-18 07:47:33

标签: c# .net compression sevenzipsharp

我目前正处于一个小项目,我必须定义几个需要压缩成一个zip文件的路径。

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

现在如何从递归模式中压缩几个文件和目录?

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

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

2 个答案:

答案 0 :(得分:1)

我没有发现使用SevenZipSharp排除文件的可能性。 相反,我现在使用DotNetZip,它有一个很好的方法来删除文件: ZipFile.RemoveEntry()ZipFile.RemoveEntries() e.g:

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);
    }
}

答案 1 :(得分: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.