pub struct ChRootFileSystem { /* private fields */ }Expand description
Changes the apparent root directory of the underlaying virtual filesystem like chroot on unix.
Implementations§
Source§impl ChRootFileSystem
impl ChRootFileSystem
Sourcepub fn new<P>(path: P, fs: Box<dyn VirtualFileSystem>) -> Self
pub fn new<P>(path: P, fs: Box<dyn VirtualFileSystem>) -> Self
Creates a new ChRoot file system
use forensic_rs::prelude::*;
use std::path::Path;
let chrfs = ChRootFileSystem::new(Path::new("C:\\"), Box::new(StdVirtualFS::new()));
let exists_c_windows = chrfs.exists(Path::new("Windows"));Trait Implementations§
Source§impl VirtualFileSystem for ChRootFileSystem
impl VirtualFileSystem for ChRootFileSystem
Source§fn read_to_string(&mut self, path: &Path) -> ForensicResult<String>
fn read_to_string(&mut self, path: &Path) -> ForensicResult<String>
Read the entire contents of a file into a string.
Source§fn is_live(&self) -> bool
fn is_live(&self) -> bool
Check if the VirtualFileSystem is an abstraction over the real filesystem and not a virtual (like a ZIP file).
Source§fn read_all(&mut self, path: &Path) -> ForensicResult<Vec<u8>>
fn read_all(&mut self, path: &Path) -> ForensicResult<Vec<u8>>
Read the entire contents of a file into a bytes vector.
Source§fn read(
&mut self,
path: &Path,
pos: u64,
buf: &mut [u8],
) -> ForensicResult<usize>
fn read( &mut self, path: &Path, pos: u64, buf: &mut [u8], ) -> ForensicResult<usize>
Read part of the content of a file into a bytes vector.
Source§fn metadata(&mut self, path: &Path) -> ForensicResult<VMetadata>
fn metadata(&mut self, path: &Path) -> ForensicResult<VMetadata>
Get the metadata of a file/dir
Source§fn read_dir(&mut self, path: &Path) -> ForensicResult<Vec<VDirEntry>>
fn read_dir(&mut self, path: &Path) -> ForensicResult<Vec<VDirEntry>>
Lists the contents of a Directory
Source§fn from_file(
&self,
_file: Box<dyn VirtualFile>,
) -> ForensicResult<Box<dyn VirtualFileSystem>>
fn from_file( &self, _file: Box<dyn VirtualFile>, ) -> ForensicResult<Box<dyn VirtualFileSystem>>
Initializes a virtual filesystem from a file. Ex: a Zip FS from a file
Source§fn from_fs(
&self,
fs: Box<dyn VirtualFileSystem>,
) -> ForensicResult<Box<dyn VirtualFileSystem>>
fn from_fs( &self, fs: Box<dyn VirtualFileSystem>, ) -> ForensicResult<Box<dyn VirtualFileSystem>>
Initializes a virtual filesystem from a filesyste. Ex: a remapping of windows routes to Linux routes.
Source§fn open(&mut self, path: &Path) -> ForensicResult<Box<dyn VirtualFile>>
fn open(&mut self, path: &Path) -> ForensicResult<Box<dyn VirtualFile>>
Open a file
Source§fn duplicate(&self) -> Box<dyn VirtualFileSystem>
fn duplicate(&self) -> Box<dyn VirtualFileSystem>
Allows duplicating the existing file system
Auto Trait Implementations§
impl Freeze for ChRootFileSystem
impl !RefUnwindSafe for ChRootFileSystem
impl !Send for ChRootFileSystem
impl !Sync for ChRootFileSystem
impl Unpin for ChRootFileSystem
impl !UnwindSafe for ChRootFileSystem
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more