Trait filesystem::FileSystem [] [src]

pub trait FileSystem {
    type DirEntry: DirEntry;
    type ReadDir: ReadDir<Self::DirEntry>;
    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<()>; }

Provides standard file system operations.

Associated Types

Required Methods

Returns the current working directory. This is based on std::env::current_dir.

Updates the current working directory. This is based on std::env::set_current_dir.

Determines whether the path exists and points to a directory.

Determines whether the path exists and points to a file.

Creates a new directory. This is based on std::fs::create_dir.

Recursively creates a directory and any missing parents. This is based on [std::fs::create_dir].

Removes an empty directory. This is based on std::fs::remove_dir.

Removes a directory and any child files or directories. This is based on std::fs::remove_dir_all.

Returns an iterator over the entries in a directory. This is based on std::fs::read_dir.

Writes buf to a new file at path.

Errors

  • A file or directory already exists at path.
  • The parent directory of path does not exist.
  • Current user has insufficient permissions.

Writes buf to a new or existing file at buf. This will overwrite any contents that already exist.

Errors

  • The parent directory of path does not exist.
  • Current user has insufficient permissions.

Writes buf to an existing file at buf. This will overwrite any contents that already exist.

Errors

  • No file file does not exist.
  • The node at file is a directory.
  • Current user has insufficient permissions.

Returns the contents of path.

  • Errors

  • path does not exist.

  • path is a directory.

  • Current user has insufficient permissions.

Returns the contents of path as a string.

  • Errors

  • path does not exist.

  • path is a directory.

  • Current user has insufficient permissions.

  • Contents are not valid UTF-8

Removes the file at path. This is based on std::fs::remove_file.

Copies the file at path from to the path to. This is based on std::fs::copy.

Renames a file or directory. If both from and to are files, to will be replaced. Based on std::fs::rename.

Returns true if path is a readonly file.

  • Errors

  • path does not exist.

  • Current user has insufficient permissions.

Sets or unsets the readonly flag of path.

  • Errors

  • path does not exist.

  • Current user has insufficient permissions.

Implementors