use*_*623 6 c# extract zipfile dotnetzip
我在C#中创建了一个程序,它处理了大约30个压缩文件夹,总共有35000个文件.我的目的是读取每个文件以处理其信息.截至目前,我的代码提取所有文件夹,然后读取文件.这个过程的问题是它需要大约15-20分钟,这是很多.
我使用以下代码来提取文件:
void ExtractFile(string zipfile, string path)
{
ZipFile zip = ZipFile.Read(zipfile);
zip.ExtractAll(path);
}
Run Code Online (Sandbox Code Playgroud)
提取部分是花费最多时间处理的部分.我需要减少这个时间.有没有办法我可以读取压缩文件夹中的文件内容而不提取它们?或者,如果有人知道任何其他方式可以帮助我减少此代码的时间?
提前致谢
您可以尝试将每个条目读取到内存流而不是文件系统中:
ZipFile zip = ZipFile.Read(zipfile);
foreach(ZipEntry entry in zip.Entries)
{
using(MemoryStream ms = new MemoryStream())
{
entry.Extract(ms);
ms.Seek(0,SeekOrigin.Begin);
// read from the stream
}
}
Run Code Online (Sandbox Code Playgroud)