我使用SharpCompress库提取.7z文件,但需要大约35分钟才能提取60mb .7z文件。这是正常的还是我在性能方面做错了什么? .7z文件在高压缩模式和LZMA类型下压缩。
<div class="col-xs-12 col-sm-6 col-md-6 col-lg-4 grey mb-30">
<div class="thumbnail">
<div class="img-center">
<img src="img/picto/originals/png/Heart/Newable_Pictogram_CoolGrey_HEART.png" class="img-responsive picto_padding" alt="...">
</div>
</div>
<div class="caption">
<h3>Responsibe finance</h3>
<p>We’re the responsible alternative for those who find High Street bank finance difficult to obtain. </p>
</div>
</div>
答案 0 :(得分:1)
这是一篇旧帖子,但我遇到了同样的问题。
这一行是问题
foreach (var entry in archive2.Entries)
问题描述here(即如果有100个文件,它会解压缩第一个文件100次,第二个文件解压缩99次,依此类推)
解决方案是使用阅读器(仅向前)。请参阅API 但那里的示例代码并不支持7z。
对于7z,您可以使用archive.ExtractAllEntries()
,例如
using (var archive = ArchiveFactory.Open(movedZipFile))
{
var reader = archive.ExtractAllEntries();
while (reader.MoveToNextEntry())
{
if (!reader.Entry.IsDirectory)
reader.WriteEntryToDirectory(extractDir, new ExtractionOptions() { ExtractFullPath = false, Overwrite = true });
}
}
会快得多。