mirror of
https://github.com/claunia/SabreTools.git
synced 2025-12-16 19:14:27 +00:00
53 lines
1.3 KiB
C#
53 lines
1.3 KiB
C#
using System;
|
|
|
|
namespace Compress
|
|
{
|
|
public class LocalFile
|
|
{
|
|
internal LocalFile()
|
|
{ }
|
|
|
|
public string? Filename { get; internal set; }
|
|
public ulong UncompressedSize { get; internal set; }
|
|
public byte[]? CRC { get; internal set; }
|
|
|
|
public bool IsDirectory { get; internal set; }
|
|
|
|
public long LastModified => ModifiedTime ?? HeaderLastModified;
|
|
|
|
internal long HeaderLastModified { get; set; }
|
|
internal long? ModifiedTime { get; set; }
|
|
|
|
public long? CreatedTime { get; internal set; }
|
|
public long? AccessedTime { get; internal set; }
|
|
|
|
|
|
private LocalFileStatus _status=LocalFileStatus.Nothing;
|
|
internal void SetStatus(LocalFileStatus lfs,bool set=true)
|
|
{
|
|
if (set)
|
|
_status |= lfs;
|
|
else
|
|
_status &= ~lfs;
|
|
}
|
|
|
|
public bool GetStatus(LocalFileStatus lfs)
|
|
{
|
|
return (_status & lfs) != 0;
|
|
}
|
|
|
|
public virtual ulong? LocalHead => null;
|
|
}
|
|
|
|
[Flags]
|
|
public enum LocalFileStatus
|
|
{
|
|
Nothing = 0x00000,
|
|
Zip64 = 0x00001,
|
|
TrrntZip = 0x00002,
|
|
FilenameMisMatch = 0x00010,
|
|
DirectoryLengthError = 0x00020,
|
|
DateTimeMisMatch = 0x00040
|
|
}
|
|
}
|