Files
2026-06-04 11:42:34 +02:00

183 lines
5.2 KiB
C#

using System;
using System.IO;
namespace ICSharpCode.SharpZipLib.Zip
{
// Token: 0x0200005D RID: 93
public class ExtendedUnixData : ITaggedData
{
// Token: 0x170000D2 RID: 210
// (get) Token: 0x0600038D RID: 909 RVA: 0x000125C0 File Offset: 0x000115C0
public short TagID
{
get
{
return 21589;
}
}
// Token: 0x0600038E RID: 910 RVA: 0x000125C8 File Offset: 0x000115C8
public void SetData(byte[] data, int index, int count)
{
using (MemoryStream memoryStream = new MemoryStream(data, index, count, false))
{
using (ZipHelperStream zipHelperStream = new ZipHelperStream(memoryStream))
{
this._flags = (ExtendedUnixData.Flags)zipHelperStream.ReadByte();
if ((byte)(this._flags & ExtendedUnixData.Flags.ModificationTime) != 0 && count >= 5)
{
int num = zipHelperStream.ReadLEInt();
this._modificationTime = (new DateTime(1970, 1, 1, 0, 0, 0).ToUniversalTime() + new TimeSpan(0, 0, 0, num, 0)).ToLocalTime();
}
if ((byte)(this._flags & ExtendedUnixData.Flags.AccessTime) != 0)
{
int num2 = zipHelperStream.ReadLEInt();
this._lastAccessTime = (new DateTime(1970, 1, 1, 0, 0, 0).ToUniversalTime() + new TimeSpan(0, 0, 0, num2, 0)).ToLocalTime();
}
if ((byte)(this._flags & ExtendedUnixData.Flags.CreateTime) != 0)
{
int num3 = zipHelperStream.ReadLEInt();
this._createTime = (new DateTime(1970, 1, 1, 0, 0, 0).ToUniversalTime() + new TimeSpan(0, 0, 0, num3, 0)).ToLocalTime();
}
}
}
}
// Token: 0x0600038F RID: 911 RVA: 0x00012720 File Offset: 0x00011720
public byte[] GetData()
{
byte[] array;
using (MemoryStream memoryStream = new MemoryStream())
{
using (ZipHelperStream zipHelperStream = new ZipHelperStream(memoryStream))
{
zipHelperStream.IsStreamOwner = false;
zipHelperStream.WriteByte((byte)this._flags);
if ((byte)(this._flags & ExtendedUnixData.Flags.ModificationTime) != 0)
{
int num = (int)(this._modificationTime.ToUniversalTime() - new DateTime(1970, 1, 1, 0, 0, 0).ToUniversalTime()).TotalSeconds;
zipHelperStream.WriteLEInt(num);
}
if ((byte)(this._flags & ExtendedUnixData.Flags.AccessTime) != 0)
{
int num2 = (int)(this._lastAccessTime.ToUniversalTime() - new DateTime(1970, 1, 1, 0, 0, 0).ToUniversalTime()).TotalSeconds;
zipHelperStream.WriteLEInt(num2);
}
if ((byte)(this._flags & ExtendedUnixData.Flags.CreateTime) != 0)
{
int num3 = (int)(this._createTime.ToUniversalTime() - new DateTime(1970, 1, 1, 0, 0, 0).ToUniversalTime()).TotalSeconds;
zipHelperStream.WriteLEInt(num3);
}
array = memoryStream.ToArray();
}
}
return array;
}
// Token: 0x06000390 RID: 912 RVA: 0x00012874 File Offset: 0x00011874
public static bool IsValidValue(DateTime value)
{
return value >= new DateTime(1901, 12, 13, 20, 45, 52) || value <= new DateTime(2038, 1, 19, 3, 14, 7);
}
// Token: 0x170000D3 RID: 211
// (get) Token: 0x06000391 RID: 913 RVA: 0x000128AB File Offset: 0x000118AB
// (set) Token: 0x06000392 RID: 914 RVA: 0x000128B3 File Offset: 0x000118B3
public DateTime ModificationTime
{
get
{
return this._modificationTime;
}
set
{
if (!ExtendedUnixData.IsValidValue(value))
{
throw new ArgumentOutOfRangeException("value");
}
this._flags |= ExtendedUnixData.Flags.ModificationTime;
this._modificationTime = value;
}
}
// Token: 0x170000D4 RID: 212
// (get) Token: 0x06000393 RID: 915 RVA: 0x000128DE File Offset: 0x000118DE
// (set) Token: 0x06000394 RID: 916 RVA: 0x000128E6 File Offset: 0x000118E6
public DateTime AccessTime
{
get
{
return this._lastAccessTime;
}
set
{
if (!ExtendedUnixData.IsValidValue(value))
{
throw new ArgumentOutOfRangeException("value");
}
this._flags |= ExtendedUnixData.Flags.AccessTime;
this._lastAccessTime = value;
}
}
// Token: 0x170000D5 RID: 213
// (get) Token: 0x06000395 RID: 917 RVA: 0x00012911 File Offset: 0x00011911
// (set) Token: 0x06000396 RID: 918 RVA: 0x00012919 File Offset: 0x00011919
public DateTime CreateTime
{
get
{
return this._createTime;
}
set
{
if (!ExtendedUnixData.IsValidValue(value))
{
throw new ArgumentOutOfRangeException("value");
}
this._flags |= ExtendedUnixData.Flags.CreateTime;
this._createTime = value;
}
}
// Token: 0x170000D6 RID: 214
// (get) Token: 0x06000397 RID: 919 RVA: 0x00012944 File Offset: 0x00011944
// (set) Token: 0x06000398 RID: 920 RVA: 0x0001294C File Offset: 0x0001194C
private ExtendedUnixData.Flags Include
{
get
{
return this._flags;
}
set
{
this._flags = value;
}
}
// Token: 0x040002B0 RID: 688
private ExtendedUnixData.Flags _flags;
// Token: 0x040002B1 RID: 689
private DateTime _modificationTime = new DateTime(1970, 1, 1);
// Token: 0x040002B2 RID: 690
private DateTime _lastAccessTime = new DateTime(1970, 1, 1);
// Token: 0x040002B3 RID: 691
private DateTime _createTime = new DateTime(1970, 1, 1);
// Token: 0x0200005E RID: 94
[Flags]
public enum Flags : byte
{
// Token: 0x040002B5 RID: 693
ModificationTime = 1,
// Token: 0x040002B6 RID: 694
AccessTime = 2,
// Token: 0x040002B7 RID: 695
CreateTime = 4
}
}
}