27 private readonly Stream innerStream;
36 #region Constructors and Destructors
49 this.innerStream = innerStream;
50 this.zipFileEntry = zipFileEntry;
55 #region Public Properties
60 public override bool CanRead
64 return this.innerStream.CanRead;
71 public override bool CanSeek
75 return this.innerStream.CanSeek;
82 public override bool CanWrite
93 public override long Length
97 return this.zipFileEntry.FileSize;
104 public override long Position
108 return this.innerStream.Position - this.zipFileEntry.FileOffset;
113 this.innerStream.Position = this.zipFileEntry.FileOffset + value;
119 #region Public Methods and Operators
128 if (this.zipFileEntry.Method ==
Compression.Deflate)
130 this.innerStream.Dispose();
141 throw new InvalidOperationException(
"You cannot modify this stream.");
159 public override int Read(byte[] buffer,
int offset,
int count)
161 return this.innerStream.Read(buffer, offset,
count);
180 public override long Seek(
long offset, SeekOrigin origin)
182 long localOffset = -1;
185 case SeekOrigin.Begin:
186 localOffset = this.zipFileEntry.FileOffset + offset;
188 case SeekOrigin.Current:
191 localOffset = this.zipFileEntry.FileOffset + this.zipFileEntry.FileSize + offset;
194 throw new ArgumentOutOfRangeException(
"origin");
197 if (localOffset > this.zipFileEntry.FileSize || localOffset < 0)
199 throw new EndOfStreamException();
202 return this.innerStream.Seek(localOffset, origin) - this.zipFileEntry.FileOffset;
215 throw new InvalidOperationException(
"You cannot modify this stream.");
232 public override void Write(byte[] buffer,
int offset,
int count)
234 throw new InvalidOperationException(
"You cannot modify this stream.");
Represents an entry in Zip file directory
override void Close()
The close.
ZipStream(Stream innerStream, ZipFileEntry zipFileEntry)
Initializes a new instance of the ZipStream class.
override void Flush()
The flush.
override void SetLength(long value)
The set length.
override long Seek(long offset, SeekOrigin origin)
The seek.
override void Write(byte[] buffer, int offset, int count)
The write.
Compression
Compression method enumeration
override int Read(byte[] buffer, int offset, int count)
The read.