Worms4Editor/LibW4M/PS2/PsuFileEntry.cs

76 lines
1.9 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace LibW4M.PS2
{
public class PsuFileEntry
{
internal int directoryEntries;
public Stream FileData;
public PsuEntryType EntryType;
public DateTime CreationDate;
public ushort Sector;
public DateTime ModifiedDate;
public string Filename;
public bool IsFile
{
get
{
return (EntryType == PsuEntryType.FILE_ENTRY || EntryType == PsuEntryType.SYSTEM_ENTRY);
}
}
public int Filesize
{
get
{
if (IsFile)
{
return Convert.ToInt32(FileData.Length);
}
else
{
return directoryEntries;
}
}
set
{
if (IsFile)
{
FileData.SetLength(value);
}
else
{
directoryEntries = value;
}
}
}
public PsuFileEntry(PsuEntryType entryType, int fileSize, DateTime creationDate, ushort sector, DateTime modifiedDate, string fileName, byte[]? fileData)
{
this.EntryType = entryType;
this.directoryEntries = fileSize;
this.CreationDate = creationDate;
this.Sector = sector;
this.ModifiedDate = modifiedDate;
this.Filename = fileName;
if(fileData is null)
{
this.FileData = Stream.Null;
}
else
{
this.FileData = new MemoryStream();
this.FileData.Write(fileData, 0, fileSize);
this.FileData.Seek(0, SeekOrigin.Begin);
}
}
}
}