using System; using System.IO; using FubarDev.FtpServer.FileSystem; using FubarDev.FtpServer.FileSystem.Generic; namespace ShadowEditor.Server.Remote.FileSystem { /// /// A implementation for the standard /// .NET file system functionality. /// public class RemoteFileEntry : IUnixFileEntry { /// /// Initializes a new instance of the class. /// /// The file system this entry belongs to /// The to extract the information from public RemoteFileEntry(RemoteFileSystem fileSystem, FileInfo info) { FileSystem = fileSystem; Info = info; LastWriteTime = new DateTimeOffset(Info.LastWriteTime); CreatedTime = new DateTimeOffset(Info.CreationTimeUtc); var accessMode = new GenericAccessMode(true, true, true); Permissions = new GenericUnixPermissions(accessMode, accessMode, accessMode); } /// /// Gets the underlying /// public FileInfo Info { get; } /// public string Name => Info.Name; /// public IUnixPermissions Permissions { get; } /// public DateTimeOffset? LastWriteTime { get; } /// public DateTimeOffset? CreatedTime { get; } /// public long NumberOfLinks => 1; /// public IUnixFileSystem FileSystem { get; } /// public string Owner => "owner"; /// public string Group => "group"; /// public long Size => Info.Length; } }