77 lines
2.8 KiB
C#
77 lines
2.8 KiB
C#
using System.Text.Json;
|
|
|
|
namespace View_by_Distance.Shared.Models;
|
|
|
|
public class FileHolder : Properties.IFileHolder
|
|
{
|
|
|
|
protected readonly DateTime _CreationTime;
|
|
protected readonly string? _DirectoryName;
|
|
protected readonly bool _Exists;
|
|
protected readonly string _ExtensionLowered;
|
|
protected readonly string _FullName;
|
|
protected readonly DateTime _LastWriteTime;
|
|
protected readonly long? _Length;
|
|
protected readonly string _Name;
|
|
protected readonly string _NameWithoutExtension;
|
|
public DateTime CreationTime => _CreationTime;
|
|
public string? DirectoryName => _DirectoryName;
|
|
public bool Exists => _Exists;
|
|
public string ExtensionLowered => _ExtensionLowered;
|
|
public string FullName => _FullName;
|
|
public DateTime LastWriteTime => _LastWriteTime;
|
|
public long? Length => _Length;
|
|
public string Name => _Name;
|
|
public string NameWithoutExtension => _NameWithoutExtension;
|
|
|
|
public FileHolder(DateTime creationTime, string? directoryName, bool exists, string extensionLowered, string fullName, DateTime lastWriteTime, long? length, string name, string nameWithoutExtension)
|
|
{
|
|
_CreationTime = creationTime;
|
|
_DirectoryName = directoryName;
|
|
_Exists = exists;
|
|
_ExtensionLowered = extensionLowered;
|
|
_FullName = fullName;
|
|
_LastWriteTime = lastWriteTime;
|
|
_Length = length;
|
|
_Name = name;
|
|
_NameWithoutExtension = nameWithoutExtension;
|
|
}
|
|
|
|
public FileHolder(string fileName)
|
|
{
|
|
FileInfo fileInfo = new(fileName);
|
|
_CreationTime = fileInfo.CreationTime;
|
|
_CreationTime = fileInfo.CreationTime;
|
|
_DirectoryName = fileInfo.DirectoryName;
|
|
_Exists = fileInfo.Exists;
|
|
_ExtensionLowered = fileInfo.Extension.ToLower();
|
|
_FullName = fileInfo.FullName;
|
|
_LastWriteTime = fileInfo.LastWriteTime;
|
|
if (fileInfo.Exists)
|
|
_Length = fileInfo.Length;
|
|
_Name = fileInfo.Name;
|
|
_NameWithoutExtension = Path.GetFileNameWithoutExtension(fileInfo.FullName);
|
|
}
|
|
|
|
public FileHolder(FileInfo fileInfo)
|
|
{
|
|
_CreationTime = fileInfo.CreationTime;
|
|
_CreationTime = fileInfo.CreationTime;
|
|
_DirectoryName = fileInfo.DirectoryName;
|
|
_Exists = fileInfo.Exists;
|
|
_ExtensionLowered = fileInfo.Extension.ToLower();
|
|
_FullName = fileInfo.FullName;
|
|
_LastWriteTime = fileInfo.LastWriteTime;
|
|
if (fileInfo.Exists)
|
|
_Length = fileInfo.Length;
|
|
_Name = fileInfo.Name;
|
|
_NameWithoutExtension = Path.GetFileNameWithoutExtension(fileInfo.FullName);
|
|
}
|
|
|
|
public override string ToString()
|
|
{
|
|
string result = JsonSerializer.Serialize(this, new JsonSerializerOptions() { WriteIndented = true });
|
|
return result;
|
|
}
|
|
|
|
} |