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