a575963da9
Former-commit-id: da6be194a6b1221998fc28233f2503bd61dd9d14
117 lines
3.1 KiB
C#
117 lines
3.1 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using SharpCompress.Common.Zip.Headers;
|
|
|
|
namespace SharpCompress.Common.Zip
|
|
{
|
|
internal class ZipEntry : Entry
|
|
{
|
|
private readonly ZipFilePart filePart;
|
|
private DateTime? lastModifiedTime;
|
|
|
|
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.LZMA:
|
|
{
|
|
return CompressionType.LZMA;
|
|
}
|
|
case ZipCompressionMethod.PPMd:
|
|
{
|
|
return CompressionType.PPMd;
|
|
}
|
|
case ZipCompressionMethod.None:
|
|
{
|
|
return CompressionType.None;
|
|
}
|
|
default:
|
|
{
|
|
return CompressionType.Unknown;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
public override uint Crc
|
|
{
|
|
get { return filePart.Header.Crc; }
|
|
}
|
|
|
|
public override string Key
|
|
{
|
|
get { return filePart.Header.Name; }
|
|
}
|
|
|
|
public override long CompressedSize
|
|
{
|
|
get { return filePart.Header.CompressedSize; }
|
|
}
|
|
|
|
public override long Size
|
|
{
|
|
get { return filePart.Header.UncompressedSize; }
|
|
}
|
|
|
|
public override DateTime? LastModifiedTime
|
|
{
|
|
get { return lastModifiedTime; }
|
|
set { lastModifiedTime = value; }
|
|
}
|
|
|
|
public override DateTime? CreatedTime
|
|
{
|
|
get { return null; }
|
|
}
|
|
|
|
public override DateTime? LastAccessedTime
|
|
{
|
|
get { return null; }
|
|
}
|
|
|
|
public override DateTime? ArchivedTime
|
|
{
|
|
get { return null; }
|
|
}
|
|
|
|
public override bool IsEncrypted
|
|
{
|
|
get { return FlagUtility.HasFlag(filePart.Header.Flags, HeaderFlags.Encrypted); }
|
|
}
|
|
|
|
public override bool IsDirectory
|
|
{
|
|
get { return filePart.Header.IsDirectory; }
|
|
}
|
|
|
|
public override bool IsSplit
|
|
{
|
|
get { return false; }
|
|
}
|
|
|
|
internal override IEnumerable<FilePart> Parts
|
|
{
|
|
get { return filePart.AsEnumerable<FilePart>(); }
|
|
}
|
|
}
|
|
} |