2 using System.Collections.Generic;
4 using SharpCompress.Common;
5 using SharpCompress.IO;
7 namespace SharpCompress.Archive.Zip
9 internal class ZipWritableArchiveEntry : ZipArchiveEntry, IWritableArchiveEntry
11 private readonly string path;
12 private readonly long size;
13 private readonly bool closeStream;
14 private readonly Stream stream;
15 private bool isDisposed;
17 internal ZipWritableArchiveEntry(ZipArchive archive, Stream stream, string path, long size,
18 DateTime? lastModified, bool closeStream)
24 this.LastModifiedTime = lastModified;
25 this.closeStream = closeStream;
28 public override uint Crc
33 public override string Key
38 public override long CompressedSize
43 public override long Size
48 public override DateTime? CreatedTime
53 public override DateTime? LastAccessedTime
58 public override DateTime? ArchivedTime
63 public override bool IsEncrypted
68 public override bool IsDirectory
73 public override bool IsSplit
78 internal override IEnumerable<FilePart> Parts
80 get { throw new NotImplementedException(); }
83 Stream IWritableArchiveEntry.Stream
91 public override Stream OpenEntryStream()
93 //ensure new stream is at the start, this could be reset
94 stream.Seek(0, SeekOrigin.Begin);
95 return new NonDisposingStream(stream);
98 internal override void Close()
100 if (closeStream && !isDisposed)