2 using System.Collections.Generic;
3 using SharpCompress.Common.Zip.Headers;
5 namespace SharpCompress.Common.Zip
7 internal class ZipEntry : Entry
9 private readonly ZipFilePart filePart;
10 private DateTime? lastModifiedTime;
12 internal ZipEntry(ZipFilePart filePart)
16 this.filePart = filePart;
17 lastModifiedTime = Utility.DosDateToDateTime(filePart.Header.LastModifiedDate,
18 filePart.Header.LastModifiedTime);
22 public override CompressionType CompressionType
26 switch (filePart.Header.CompressionMethod)
28 case ZipCompressionMethod.BZip2:
30 return CompressionType.BZip2;
32 case ZipCompressionMethod.Deflate:
34 return CompressionType.Deflate;
36 case ZipCompressionMethod.LZMA:
38 return CompressionType.LZMA;
40 case ZipCompressionMethod.PPMd:
42 return CompressionType.PPMd;
44 case ZipCompressionMethod.None:
46 return CompressionType.None;
50 return CompressionType.Unknown;
56 public override uint Crc
58 get { return filePart.Header.Crc; }
61 public override string Key
63 get { return filePart.Header.Name; }
66 public override long CompressedSize
68 get { return filePart.Header.CompressedSize; }
71 public override long Size
73 get { return filePart.Header.UncompressedSize; }
76 public override DateTime? LastModifiedTime
78 get { return lastModifiedTime; }
79 set { lastModifiedTime = value; }
82 public override DateTime? CreatedTime
87 public override DateTime? LastAccessedTime
92 public override DateTime? ArchivedTime
97 public override bool IsEncrypted
99 get { return FlagUtility.HasFlag(filePart.Header.Flags, HeaderFlags.Encrypted); }
102 public override bool IsDirectory
104 get { return filePart.Header.IsDirectory; }
107 public override bool IsSplit
109 get { return false; }
112 internal override IEnumerable<FilePart> Parts
114 get { return filePart.AsEnumerable<FilePart>(); }