ChrootFileSystem class
File system that provides a view into another FileSystem via a path.
This is similar in concept to the chroot
operation in Linux operating
systems. Such a modified file system cannot name or access files outside of
the designated directory tree.
Example use:
// Create a "file system" where the root directory is /tmp/some-dir.
var fs = ChrootFileSystem(existingFileSystem, '/tmp/some-dir');
Notes on usage:
-
This file system maintains its own currentDirectory, distinct from that of the underlying file system, and new instances automatically start at the root (i.e.
/
). -
This file system does not leverage any underlying OS system calls (such as
chroot
itself), so the developer needs to take care to not assume any more of a secure environment than is actually provided. For instance, the underlying system is available via the delegate - which underscores this file system is intended to be a convenient abstraction, not a security measure. -
This file system necessarily carries certain performance overhead due to the fact that symbolic links are resolved manually (not delegated).
- Inheritance
-
- Object
- FileSystem
- ChrootFileSystem
Constructors
- ChrootFileSystem(FileSystem delegate, String root)
-
Creates a new file system backed by
root
path indelegate
file system.
Properties
- currentDirectory ↔ Directory
-
Creates a directory object pointing to the current working directory.
getter/setter pairoverride
- delegate → FileSystem
-
Underlying file system.
final
- hashCode → int
-
The hash code for this object.
no setterinherited
- isWatchSupported → bool
-
Tests if FileSystemEntity.watch is supported on the current system.
no setteroverride
- path → Context
-
An object for manipulating paths in this file system.
no setteroverride
- root → String
-
Directory in delegate file system that is treated as the root here.
final
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
- systemTempDirectory → Directory
-
Gets the system temp directory. This directory will be created on-demand
in the local root of the file system. Once created, its location is fixed
for the life of the process.
no setteroverride
Methods
-
directory(
dynamic path) → Directory -
Returns a reference to a Directory at
path
.override -
file(
dynamic path) → File -
Returns a reference to a File at
path
.override -
getPath(
dynamic path) → String -
Gets the string path represented by the specified generic
path
.inherited -
identical(
String path1, String path2) → Future< bool> -
Checks whether two paths refer to the same object in the
file system. Returns a Future<bool> that completes with the result.
override
-
identicalSync(
String path1, String path2) → bool -
Synchronously checks whether two paths refer to the same object in the
file system.
override
-
isDirectory(
String path) → Future< bool> -
Checks if
type(path)
returnsio.FileSystemEntityType.DIRECTORY
.inherited -
isDirectorySync(
String path) → bool -
Synchronously checks if
type(path)
returnsio.FileSystemEntityType.DIRECTORY
.inherited -
isFile(
String path) → Future< bool> -
Checks if
type(path)
returnsio.FileSystemEntityType.FILE
.inherited -
isFileSync(
String path) → bool -
Synchronously checks if
type(path)
returnsio.FileSystemEntityType.FILE
.inherited -
isLink(
String path) → Future< bool> -
Checks if
type(path)
returnsio.FileSystemEntityType.LINK
.inherited -
isLinkSync(
String path) → bool -
Synchronously checks if
type(path)
returnsio.FileSystemEntityType.LINK
.inherited -
link(
dynamic path) → Link -
Returns a reference to a Link at
path
.override -
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
stat(
String path) → Future< FileStat> -
Asynchronously calls the operating system's stat() function on
path
. Returns a Future which completes with a io.FileStat object containing the data returned by stat(). If the call fails, completes the future with a io.FileStat object with .type set to FileSystemEntityType.NOT_FOUND and the other fields invalid.override -
statSync(
String path) → FileStat -
Calls the operating system's stat() function on
path
. Returns a io.FileStat object containing the data returned by stat(). If the call fails, returns a io.FileStat object with .type set to FileSystemEntityType.NOT_FOUND and the other fields invalid.override -
toString(
) → String -
A string representation of this object.
inherited
-
type(
String path, {bool followLinks = true}) → Future< FileSystemEntityType> -
Finds the type of file system object that a
path
points to. Returns a Futurethat completes with the result. override -
typeSync(
String path, {bool followLinks = true}) → FileSystemEntityType -
Syncronously finds the type of file system object that a
path
points to. Returns a io.FileSystemEntityType.override
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited