Trait filesystem::FileSystem
source · pub trait FileSystem {
type DirEntry: DirEntry;
type ReadDir: ReadDir<Self::DirEntry>;
Show 20 methods
fn current_dir(&self) -> Result<PathBuf>;
fn set_current_dir<P: AsRef<Path>>(&self, path: P) -> Result<()>;
fn is_dir<P: AsRef<Path>>(&self, path: P) -> bool;
fn is_file<P: AsRef<Path>>(&self, path: P) -> bool;
fn create_dir<P: AsRef<Path>>(&self, path: P) -> Result<()>;
fn create_dir_all<P: AsRef<Path>>(&self, path: P) -> Result<()>;
fn remove_dir<P: AsRef<Path>>(&self, path: P) -> Result<()>;
fn remove_dir_all<P: AsRef<Path>>(&self, path: P) -> Result<()>;
fn read_dir<P: AsRef<Path>>(&self, path: P) -> Result<Self::ReadDir>;
fn create_file<P, B>(&self, path: P, buf: B) -> Result<()>
where
P: AsRef<Path>,
B: AsRef<[u8]>;
fn write_file<P, B>(&self, path: P, buf: B) -> Result<()>
where
P: AsRef<Path>,
B: AsRef<[u8]>;
fn overwrite_file<P, B>(&self, path: P, buf: B) -> Result<()>
where
P: AsRef<Path>,
B: AsRef<[u8]>;
fn read_file<P: AsRef<Path>>(&self, path: P) -> Result<Vec<u8>>;
fn read_file_to_string<P: AsRef<Path>>(&self, path: P) -> Result<String>;
fn remove_file<P: AsRef<Path>>(&self, path: P) -> Result<()>;
fn copy_file<P, Q>(&self, from: P, to: Q) -> Result<()>
where
P: AsRef<Path>,
Q: AsRef<Path>;
fn rename<P, Q>(&self, from: P, to: Q) -> Result<()>
where
P: AsRef<Path>,
Q: AsRef<Path>;
fn readonly<P: AsRef<Path>>(&self, path: P) -> Result<bool>;
fn set_readonly<P: AsRef<Path>>(&self, path: P, readonly: bool) -> Result<()>;
fn len<P: AsRef<Path>>(&self, path: P) -> u64;
}Expand description
Provides standard file system operations.
Required Associated Types
Required Methods
sourcefn current_dir(&self) -> Result<PathBuf>
fn current_dir(&self) -> Result<PathBuf>
Returns the current working directory.
This is based on std::env::current_dir.
sourcefn set_current_dir<P: AsRef<Path>>(&self, path: P) -> Result<()>
fn set_current_dir<P: AsRef<Path>>(&self, path: P) -> Result<()>
Updates the current working directory.
This is based on std::env::set_current_dir.
sourcefn is_dir<P: AsRef<Path>>(&self, path: P) -> bool
fn is_dir<P: AsRef<Path>>(&self, path: P) -> bool
Determines whether the path exists and points to a directory.
sourcefn is_file<P: AsRef<Path>>(&self, path: P) -> bool
fn is_file<P: AsRef<Path>>(&self, path: P) -> bool
Determines whether the path exists and points to a file.
sourcefn create_dir<P: AsRef<Path>>(&self, path: P) -> Result<()>
fn create_dir<P: AsRef<Path>>(&self, path: P) -> Result<()>
Creates a new directory.
This is based on std::fs::create_dir.
sourcefn create_dir_all<P: AsRef<Path>>(&self, path: P) -> Result<()>
fn create_dir_all<P: AsRef<Path>>(&self, path: P) -> Result<()>
Recursively creates a directory and any missing parents.
This is based on std::fs::create_dir.
sourcefn remove_dir<P: AsRef<Path>>(&self, path: P) -> Result<()>
fn remove_dir<P: AsRef<Path>>(&self, path: P) -> Result<()>
Removes an empty directory.
This is based on std::fs::remove_dir.
sourcefn remove_dir_all<P: AsRef<Path>>(&self, path: P) -> Result<()>
fn remove_dir_all<P: AsRef<Path>>(&self, path: P) -> Result<()>
Removes a directory and any child files or directories.
This is based on std::fs::remove_dir_all.
sourcefn read_dir<P: AsRef<Path>>(&self, path: P) -> Result<Self::ReadDir>
fn read_dir<P: AsRef<Path>>(&self, path: P) -> Result<Self::ReadDir>
Returns an iterator over the entries in a directory.
This is based on std::fs::read_dir.
sourcefn create_file<P, B>(&self, path: P, buf: B) -> Result<()>where
P: AsRef<Path>,
B: AsRef<[u8]>,
fn create_file<P, B>(&self, path: P, buf: B) -> Result<()>where
P: AsRef<Path>,
B: AsRef<[u8]>,
Writes buf to a new file at path.
Errors
- A file or directory already exists at
path. - The parent directory of
pathdoes not exist. - Current user has insufficient permissions.
sourcefn write_file<P, B>(&self, path: P, buf: B) -> Result<()>where
P: AsRef<Path>,
B: AsRef<[u8]>,
fn write_file<P, B>(&self, path: P, buf: B) -> Result<()>where
P: AsRef<Path>,
B: AsRef<[u8]>,
Writes buf to a new or existing file at buf.
This will overwrite any contents that already exist.
Errors
- The parent directory of
pathdoes not exist. - Current user has insufficient permissions.
sourcefn overwrite_file<P, B>(&self, path: P, buf: B) -> Result<()>where
P: AsRef<Path>,
B: AsRef<[u8]>,
fn overwrite_file<P, B>(&self, path: P, buf: B) -> Result<()>where
P: AsRef<Path>,
B: AsRef<[u8]>,
Writes buf to an existing file at buf.
This will overwrite any contents that already exist.
Errors
- No file
filedoes not exist. - The node at
fileis a directory. - Current user has insufficient permissions.
sourcefn read_file<P: AsRef<Path>>(&self, path: P) -> Result<Vec<u8>>
fn read_file<P: AsRef<Path>>(&self, path: P) -> Result<Vec<u8>>
Returns the contents of path.
Errors
pathdoes not exist.pathis a directory.- Current user has insufficient permissions.
sourcefn read_file_to_string<P: AsRef<Path>>(&self, path: P) -> Result<String>
fn read_file_to_string<P: AsRef<Path>>(&self, path: P) -> Result<String>
Returns the contents of path as a string.
Errors
pathdoes not exist.pathis a directory.- Current user has insufficient permissions.
- Contents are not valid UTF-8
sourcefn remove_file<P: AsRef<Path>>(&self, path: P) -> Result<()>
fn remove_file<P: AsRef<Path>>(&self, path: P) -> Result<()>
Removes the file at path.
This is based on std::fs::remove_file.
sourcefn copy_file<P, Q>(&self, from: P, to: Q) -> Result<()>where
P: AsRef<Path>,
Q: AsRef<Path>,
fn copy_file<P, Q>(&self, from: P, to: Q) -> Result<()>where
P: AsRef<Path>,
Q: AsRef<Path>,
Copies the file at path from to the path to.
This is based on std::fs::copy.
sourcefn rename<P, Q>(&self, from: P, to: Q) -> Result<()>where
P: AsRef<Path>,
Q: AsRef<Path>,
fn rename<P, Q>(&self, from: P, to: Q) -> Result<()>where
P: AsRef<Path>,
Q: AsRef<Path>,
Renames a file or directory.
If both from and to are files, to will be replaced.
Based on std::fs::rename.
sourcefn readonly<P: AsRef<Path>>(&self, path: P) -> Result<bool>
fn readonly<P: AsRef<Path>>(&self, path: P) -> Result<bool>
Returns true if path is a readonly file.
Errors
pathdoes not exist.- Current user has insufficient permissions.