我SevenZipSharp
用来压缩我的文件和目录。
我使用以下代码,并且效果很好:
var searchPattern = "*.txt";
compressor.CompressDirectory(directory, archiveName, password, searchPattern, recursion);
现在,我想通过一个更复杂的SearchPattern来过滤目录文件,如下所示:
var searchPattern = "*.txt && *.xml";
compressor.CompressDirectory(directory, archiveName, password, searchPattern, recursion);
在这种情况下,我得到:
指数数组的边界之外
有没有办法做到这一点SearchPattern
?如果没有,我该怎么办?
答案是否定的,您不能使用来做到这一点SearchPattern
。
正如你可以在源代码中看到在这里:
public void CompressDirectory(
string directory, Stream archiveStream,
string password = "", string searchPattern = "*", bool recursion = true)
{
...
#if CS4
files.AddRange((new DirectoryInfo(directory)).GetFiles(searchPattern).Select(fi => fi.FullName));
#else
foreach (FileInfo fi in (new DirectoryInfo(directory)).GetFiles(searchPattern))
{
files.Add(fi.FullName);
}
#endif
...
}
在内部,SevenZipSharp调用Directory.GetFiles,它不支持多个掩码。
因此,您有几种选择:
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句