using System; using SharpCompress.Common.Rar.Headers; namespace SharpCompress.Common.Rar { public abstract class RarEntry : Entry { internal abstract FileHeader FileHeader { get; } /// /// The File's 32 bit CRC Hash /// public override uint Crc { get { return FileHeader.FileCRC; } } /// /// The path of the file internal to the Rar Archive. /// public override string FilePath { get { return FileHeader.FileName; } } /// /// The entry last modified time in the archive, if recorded /// public override DateTime? LastModifiedTime { get { return FileHeader.FileLastModifiedTime; } } /// /// The entry create time in the archive, if recorded /// public override DateTime? CreatedTime { get { return FileHeader.FileCreatedTime; } } /// /// The entry last accessed time in the archive, if recorded /// public override DateTime? LastAccessedTime { get { return FileHeader.FileLastAccessedTime; } } /// /// The entry time whend archived, if recorded /// public override DateTime? ArchivedTime { get { return FileHeader.FileArchivedTime; } } /// /// Entry is password protected and encrypted and cannot be extracted. /// public override bool IsEncrypted { get { return FileHeader.FileFlags.HasFlag(FileFlags.PASSWORD); } } /// /// Entry is password protected and encrypted and cannot be extracted. /// public override bool IsDirectory { get { return FileHeader.FileFlags.HasFlag(FileFlags.DIRECTORY); } } public override bool IsSplit { get { return FileHeader.FileFlags.HasFlag(FileFlags.SPLIT_AFTER); } } public override string ToString() { return string.Format("Entry Path: {0} Compressed Size: {1} Uncompressed Size: {2} CRC: {3}", FilePath, CompressedSize, Size, Crc); } } }