C# SevenZipSharp中的SearchPattern包含多个搜索模式
我使用SevenZipSharp压缩我的文件和目录 我使用了以下代码,它运行良好:C# SevenZipSharp中的SearchPattern包含多个搜索模式,c#,sevenzipsharp,C#,Sevenzipsharp,我使用SevenZipSharp压缩我的文件和目录 我使用了以下代码,它运行良好: var searchPattern = "*.txt"; compressor.CompressDirectory(directory, archiveName, password, searchPattern, recursion); 现在,我想用更复杂的搜索模式过滤目录文件,如下所示: var searchPattern = "*.txt && *.xml"; compressor.Comp
var searchPattern = "*.txt";
compressor.CompressDirectory(directory, archiveName, password, searchPattern, recursion);
现在,我想用更复杂的搜索模式过滤目录文件,如下所示:
var searchPattern = "*.txt && *.xml";
compressor.CompressDirectory(directory, archiveName, password, searchPattern, recursion);
在这种情况下,我得到:
索引超出了数组的边界
有没有办法通过SearchPattern实现这一点?
如果没有,我该怎么做?答案是没有,您不能使用SearchPattern进行此操作 正如您在源代码中看到的: 在内部,SevenZipSharp调用不支持多个掩码 所以你有几种选择: 在第一次创建归档文件时,逐个压缩扩展名,然后将文件添加到目录中 创建另一个重载来管理多个扩展正则表达式?并为项目做出贡献
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
...
}