An interface for file system utilities for a remote client.
About
This package provides the facilities to interact with the file system of a remote client with the same APIs and methods as the file system from dart:io.
Synchronous methods are not supported, because interactions with a remote client are inherently asynchronous.
RemoteFile instances returned by RemoteFileSystemInterface.file() or RemoteDirectory instances returned by RemoteFileSystemInterface.directory() all implement the File or Directory interface from dart:io for seamless usage and integration in existing code bases.
Usage
Extend the class RemoteFileSystemInterface and implement all required methods.
final class MySshFileSystem extends RemoteFileSystemInterface {
...
static Future<MySshFileSystem> connect(...) async {
...
}
...
}
Future<void> main() async {
final fs = await MySshFileSystem.connect(...);
// Print the current directory in the remote file system.
print(fs.currentDirectory);
// Get a RemoteFile in the current directory.
final file = fs.file("test.txt");
// Open file for writing.
final oSink = file.openWrite();
...
}
Example
For a full example implementation, see ssh_file_system.