1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 |
- using System;
- using System.Collections.Generic;
- using SharpCompress.Common.Zip.Headers;
- namespace SharpCompress.Common.Zip
- {
- public class ZipEntry : Entry
- {
- private readonly ZipFilePart _filePart;
- internal ZipEntry(ZipFilePart filePart)
- {
- if (filePart != null)
- {
- this._filePart = filePart;
- LastModifiedTime = Utility.DosDateToDateTime(filePart.Header.LastModifiedDate,
- filePart.Header.LastModifiedTime);
- }
- }
- public override CompressionType CompressionType
- {
- get
- {
- switch (_filePart.Header.CompressionMethod)
- {
- case ZipCompressionMethod.BZip2:
- {
- return CompressionType.BZip2;
- }
- case ZipCompressionMethod.Deflate:
- {
- return CompressionType.Deflate;
- }
- case ZipCompressionMethod.Deflate64:
- {
- return CompressionType.Deflate64;
- }
- case ZipCompressionMethod.LZMA:
- {
- return CompressionType.LZMA;
- }
- case ZipCompressionMethod.PPMd:
- {
- return CompressionType.PPMd;
- }
- case ZipCompressionMethod.None:
- {
- return CompressionType.None;
- }
- default:
- {
- return CompressionType.Unknown;
- }
- }
- }
- }
- public override long Crc => _filePart.Header.Crc;
- public override string Key => _filePart.Header.Name;
- public override long CompressedSize => _filePart.Header.CompressedSize;
- public override long Size => _filePart.Header.UncompressedSize;
- public override DateTime? LastModifiedTime { get; }
- public override DateTime? CreatedTime => null;
- public override DateTime? LastAccessedTime => null;
- public override DateTime? ArchivedTime => null;
- public override bool IsEncrypted => FlagUtility.HasFlag(_filePart.Header.Flags, HeaderFlags.Encrypted);
- public override bool IsDirectory => _filePart.Header.IsDirectory;
- public override bool IsSplitAfter => false;
- internal override IEnumerable<FilePart> Parts => _filePart.AsEnumerable<FilePart>();
- }
- }
|