diff --git a/Interfaces/IReadOnlyFilesystem.cs b/Interfaces/IReadOnlyFilesystem.cs index c0a1327..a7f5c38 100644 --- a/Interfaces/IReadOnlyFilesystem.cs +++ b/Interfaces/IReadOnlyFilesystem.cs @@ -121,7 +121,7 @@ public interface IReadOnlyFilesystem : IFilesystem /// Error number ErrorNumber OpenFile(string path, out IFileNode node); - /// Closes an file, freeing any private data allocated on opening. + /// Closes a file, freeing any private data allocated on opening. /// The file node. /// Error number. ErrorNumber CloseFile(IFileNode node); @@ -160,6 +160,12 @@ public interface IReadOnlyFilesystem : IFilesystem /// Buffer. Must exist and be of size equal or bigger than /// How many bytes were read into the buffer ErrorNumber ReadFile(IFileNode node, long length, byte[] buffer, out long read); + + /// Opens a directory for listing. + /// Path to the directory. + /// Represents the opened directory and is needed for other directory-related operations. + /// Error number + ErrorNumber OpenDir(string path, out IDirNode node); } /// Represents an opened file from a filesystem @@ -171,4 +177,11 @@ public interface IFileNode long Length { get; } /// Current position in file long Offset { get; set; } +} + +/// Represents an opened directory from a filesystem +public interface IDirNode +{ + /// Path to the directory + string Path { get; } } \ No newline at end of file