[英]Extracting zip file in memory failing with C# DotNetZip
我正在嘗試下載並提取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(".");
}
}
}
}
請務必查看文檔以獲取使用DotNetZip庫的許多有用示例 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.