我有一个包含数百个文本文件的 7z 存档。我想将每个文本文件直接加载到内存中。
此代码有效,但速度很慢:
var memoryStreams = new List<MemoryStream>();
var st = new SevenZipExtractor("files.7z");
for (var i = 0; i < st.FilesCount; i++)
{
var stream = new MemoryStream();
st.ExtractFile(i, stream);
memoryStreams.Add(stream);
}
//Read the memoryStreams - at this point it runs very fast
运行需要 15 分钟。相比之下,解压缩到磁盘需要十秒钟,因此作为一种解决方法,我正在这样做,然后在将每个文件读入内存后删除文件夹。但必须有更好的方法。