我目前正处于一个小项目,我必须定义几个需要压缩成一个zip文件的路径。
现在出现以下情况:其中一个路径是一个目录,应该递归压缩(包括它包含的所有文件和子文件夹)。在压缩之前,我会检查几项内容,包括权限。 如果想要压缩的当前用户没有文件或文件夹的权限,则应将其排除。
现在如何从递归模式中压缩几个文件和目录?
我已经尝试过这样的事情,但争论似乎只存在于cmd。
compressor.CustomParameters.Add("-x", "@C:\\Users\\******\\Desktop\\exclude.txt");
答案 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.