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 = new 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. [...]
read / write, override
- delegate → FileSystem
-
Underlying file system.
final
- isWatchSupported → bool
-
Tests if FileSystemEntity.watch is supported on the current system.
read-only, override
- path → Context
-
An object for manipulating paths in this file system.
read-only, override
- root → String
-
Directory in delegate file system that is treated as the root here.
final
- 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.
read-only, override
- hashCode → int
-
The hash code for this object. [...]
read-only, inherited
- runtimeType → Type
-
A representation of the runtime type of the object.
read-only, inherited
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 -
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
-
link(
dynamic path) → Link -
Returns a reference to a Link at
path
. [...]override -
stat(
String path) → Future< FileStat> -
Asynchronously calls the operating system's stat() function on
path
. Returns a Future which completes with a FileStat object containing the data returned by stat(). If the call fails, completes the future with a 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 FileStat object containing the data returned by stat(). If the call fails, returns a FileStat object with .type set to FileSystemEntityType.NOT_FOUND and the other fields invalid.override -
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 FileSystemEntityType. [...]override -
getPath(
dynamic path) → String -
Gets the string path represented by the specified generic
path
. [...]@protected, inherited -
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 -
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a non-existent method or property is accessed. [...]
inherited
-
toString(
) → String -
Returns a string representation of this object.
inherited
Operators
-
operator ==(
dynamic other) → bool -
The equality operator. [...]
inherited