【发布时间】:2014-01-27 17:29:45
【问题描述】:
我用 C# 编写了一个程序,它处理大约 30 个压缩文件夹,总共有大约 35000 个文件。我的目的是读取每个文件以处理其信息。截至目前,我的代码提取所有文件夹,然后读取文件。这个过程的问题是它需要大约 15-20 分钟才能发生,这很长。
我正在使用以下代码提取文件:
void ExtractFile(string zipfile, string path)
{
ZipFile zip = ZipFile.Read(zipfile);
zip.ExtractAll(path);
}
提取部分是处理时间最长的部分。我需要减少这个时间。有没有一种方法可以读取压缩文件夹中文件的内容而不提取它们?或者如果有人知道任何其他方法可以帮助我减少这段代码的时间?
提前致谢
【问题讨论】:
-
当然,您正在读取同一个文件两次,您是否尝试过使用本机 windows api 或其他比 .net zip 类运行速度更快的 dll。
-
对不起,我写错了两次。我会改正的
-
也许
ZipArchive[msdn.microsoft.com/en-us/library/… 是您正在寻找的。它有GetEntry之类的方法,ZipArchiveEntry可以是Opened -
如果我使用 GetEntry() 那么我可以在不提取的情况下读取该文件的内容吗?
-
是的,我正在使用 DotNetZip
标签: c# extract zipfile dotnetzip