namespace Cosmos.System.FileSystem.Listing { using global::System.IO; public enum DirectoryEntryTypeEnum { Directory, File, Unknown } public abstract class DirectoryEntry { public readonly ulong mSize; public readonly string mName; protected readonly FileSystem mFileSystem; public readonly DirectoryEntry mParent; public readonly DirectoryEntryTypeEnum mEntryType; protected DirectoryEntry(FileSystem aFileSystem, DirectoryEntry aParent, string aName, ulong aSize, DirectoryEntryTypeEnum aEntryType) { mFileSystem = aFileSystem; mParent = aParent; mEntryType = aEntryType; mName = aName; mSize = aSize; } public abstract void SetName(string aName); public abstract void SetSize(long aSize); public abstract Stream GetFileStream(); } }