我正在尝试下载并解压 C# 中的 zip 文件,特别是 DotNetZip。
当我运行这段代码时...
HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create(reportUrl);
HttpWebResponse response = (HttpWebResponse)webRequest.GetResponse();
Stream stream = response.GetResponseStream();
MemoryStream ms = new MemoryStream();
stream.CopyTo(ms);
ms.Seek(0, 0);
ZipInputStream zip = new ZipInputStream(ms);
zip.Seek(0, 0);
ZipEntry e = zip.GetNextEntry();
string s = e.FileName;
MemoryStream ms2 = new MemoryStream();
e.Extract(ms2);
Extract 方法执行后,我得到...
$exception {"Object reference not set to an instance of an object."} System.Exception {System.NullReferenceException}
有什么想法吗?谢谢!
很难说为什么你的代码不起作用。我首先会简化它并确保正确处置所有一次性资源,例如流:
class Program
{
static void Main()
{
var url = "http://downloads.sourceforge.net/project/junit/junit/3.8.1/junit3.8.1.zip";
using (var client = new WebClient())
using (var zip = ZipFile.Read(client.DownloadData(url)))
{
foreach (var entry in zip)
{
entry.Extract(".");
}
}
}
}
确保您查看了文档许多有用的例子 http://cheeso.members.winisp.net/DotNetZipHelp/Examples.htm使用 DotNetZip 库。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)