public ZipFile(Stream stream) { if (stream==null) { throw new ArgumentNullException("stream"); } if (!stream.CanSeek) { throw new ArgumentException("Stream is not seekable", "stream"); } baseStream_=stream; isStreamOwner=true; if (baseStream_.Length>0) { try { ReadEntries(); } catch { DisposeInternal(true); throw; } } else { entries_=new ZipEntry[0]; isNewArchive_=true; } }