2
我在C#中使用DotNetZip從流解壓縮如下:使用DotNetZip失敗,「流不支持查找操作」
WebClient client = new WebClient();
Stream fs = client.OpenRead(url);
但是獲得
public static void unzipFromStream(Stream stream, string outdir)
{ //omit try catch block
using (ZipFile zip = ZipFile.Read(stream)){
foreach (ZipEntry e in zip){
e.Extract(outdir, ExtractExistingFileAction.OverwriteSilently);
}
}
}
流,我以下例外
exception during extracting zip from stream System.NotSupportedException: This stream does not support seek operations.
at System.Net.ConnectStream.get_Position()
at Ionic.Zip.ZipFile.Read(Stream zipStream, TextWriter statusMessageWriter, Encoding encoding, EventHandler`1 readProgress)
在服務器端(ASP.NET MVC 4),返回FilePathResult
或FileStreamResult
都導致此異常。
我應該在客戶端獲得不同的流嗎?或者如何讓服務器返回一個「可搜索」流?謝謝!
謝謝,吉姆!數據大小是否僅限於內存?還是通過在C#中的contrains? – totoro 2014-10-10 05:13:50
@green'MemoryStream'有一些大小限制(最大爲「Int32.MaxValue」字節,但在使用OutOfMemoryExceptions之前可能會失敗)。 'FileStream'只受硬盤大小的限制。 – 2014-10-10 07:46:56