Struct cap_std::fs::Dir [−][src]
pub struct Dir { /* fields omitted */ }A reference to an open directory on a filesystem.
This does not directly correspond to anything in std, however its methods
correspond to the functions in std::fs and the constructor methods for
std::fs::File.
Unlike std::fs, this API’s canonicalize returns a relative path since
absolute paths don’t interoperate well with the capability model.
Implementations
impl Dir[src]
impl Dir[src]pub unsafe fn from_std_file(std_file: File) -> Self[src]
pub unsafe fn from_std_file(std_file: File) -> Self[src]Constructs a new instance of Self from the given std::fs::File.
To prevent race conditions on Windows, the file must be opened without
FILE_SHARE_DELETE.
Safety
std::fs::File is not sandboxed and may access any path that the host
process has access to.
pub fn into_std_file(self) -> File[src]
pub fn into_std_file(self) -> File[src]Consumes self and returns a std::fs::File.
pub fn open<P: AsRef<Path>>(&self, path: P) -> Result<File>[src]
pub fn open<P: AsRef<Path>>(&self, path: P) -> Result<File>[src]Attempts to open a file in read-only mode.
This corresponds to std::fs::File::open, but only accesses paths
relative to self.
pub fn open_with<P: AsRef<Path>>(
&self,
path: P,
options: &OpenOptions
) -> Result<File>[src]
pub fn open_with<P: AsRef<Path>>(
&self,
path: P,
options: &OpenOptions
) -> Result<File>[src]Opens a file at path with the options specified by self.
This corresponds to std::fs::OpenOptions::open.
Instead of being a method on OpenOptions, this is a method on Dir,
and it only accesses paths relative to self.
pub fn create_dir<P: AsRef<Path>>(&self, path: P) -> Result<()>[src]
pub fn create_dir<P: AsRef<Path>>(&self, path: P) -> Result<()>[src]Creates a new, empty directory at the provided path.
This corresponds to std::fs::create_dir, but only accesses paths
relative to self.
pub fn create_dir_all<P: AsRef<Path>>(&self, path: P) -> Result<()>[src]
pub fn create_dir_all<P: AsRef<Path>>(&self, path: P) -> Result<()>[src]Recursively create a directory and all of its parent components if they are missing.
This corresponds to std::fs::create_dir_all, but only accesses paths
relative to self.
pub fn create_dir_with<P: AsRef<Path>>(
&self,
path: P,
dir_builder: &DirBuilder
) -> Result<()>[src]
pub fn create_dir_with<P: AsRef<Path>>(
&self,
path: P,
dir_builder: &DirBuilder
) -> Result<()>[src]Creates the specified directory with the options configured in this builder.
This corresponds to std::fs::DirBuilder::create.
pub fn create<P: AsRef<Path>>(&self, path: P) -> Result<File>[src]
pub fn create<P: AsRef<Path>>(&self, path: P) -> Result<File>[src]Opens a file in write-only mode.
This corresponds to std::fs::File::create, but only accesses paths
relative to self.
pub fn canonicalize<P: AsRef<Path>>(&self, path: P) -> Result<PathBuf>[src]
pub fn canonicalize<P: AsRef<Path>>(&self, path: P) -> Result<PathBuf>[src]Returns the canonical form of a path with all intermediate components normalized and symbolic links resolved.
This corresponds to std::fs::canonicalize, but instead of returning an
absolute path, returns a path relative to the directory represented by self.
pub fn copy<P: AsRef<Path>, Q: AsRef<Path>>(
&self,
from: P,
to_dir: &Self,
to: Q
) -> Result<u64>[src]
pub fn copy<P: AsRef<Path>, Q: AsRef<Path>>(
&self,
from: P,
to_dir: &Self,
to: Q
) -> Result<u64>[src]Copies the contents of one file to another. This function will also copy the permission bits of the original file to the destination file.
This corresponds to std::fs::copy, but only accesses paths
relative to self.
pub fn hard_link<P: AsRef<Path>, Q: AsRef<Path>>(
&self,
src: P,
dst_dir: &Self,
dst: Q
) -> Result<()>[src]
pub fn hard_link<P: AsRef<Path>, Q: AsRef<Path>>(
&self,
src: P,
dst_dir: &Self,
dst: Q
) -> Result<()>[src]Creates a new hard link on a filesystem.
This corresponds to std::fs::hard_link, but only accesses paths
relative to self.
pub fn metadata<P: AsRef<Path>>(&self, path: P) -> Result<Metadata>[src]
pub fn metadata<P: AsRef<Path>>(&self, path: P) -> Result<Metadata>[src]Given a path, query the file system to get information about a file, directory, etc.
This corresponds to std::fs::metadata, but only accesses paths
relative to self.
pub fn dir_metadata(&self) -> Result<Metadata>[src]
pub fn dir_metadata(&self) -> Result<Metadata>[src]Queries metadata about the underlying directory.
This is similar to std::fs::File::metadata, but for Dir rather
than for File.
pub fn read_dir<P: AsRef<Path>>(&self, path: P) -> Result<ReadDir>[src]
pub fn read_dir<P: AsRef<Path>>(&self, path: P) -> Result<ReadDir>[src]Returns an iterator over the entries within a directory.
This corresponds to std::fs::read_dir, but only accesses paths
relative to self.
pub fn read<P: AsRef<Path>>(&self, path: P) -> Result<Vec<u8>>[src]
pub fn read<P: AsRef<Path>>(&self, path: P) -> Result<Vec<u8>>[src]Read the entire contents of a file into a bytes vector.
This corresponds to std::fs::read, but only accesses paths
relative to self.
pub fn read_link<P: AsRef<Path>>(&self, path: P) -> Result<PathBuf>[src]
pub fn read_link<P: AsRef<Path>>(&self, path: P) -> Result<PathBuf>[src]Reads a symbolic link, returning the file that the link points to.
This corresponds to std::fs::read_link, but only accesses paths
relative to self.
pub fn read_to_string<P: AsRef<Path>>(&self, path: P) -> Result<String>[src]
pub fn read_to_string<P: AsRef<Path>>(&self, path: P) -> Result<String>[src]Read the entire contents of a file into a string.
This corresponds to std::fs::read_to_string, but only accesses paths
relative to self.
pub fn remove_dir<P: AsRef<Path>>(&self, path: P) -> Result<()>[src]
pub fn remove_dir<P: AsRef<Path>>(&self, path: P) -> Result<()>[src]Removes an empty directory.
This corresponds to std::fs::remove_dir, but only accesses paths
relative to self.
pub fn remove_dir_all<P: AsRef<Path>>(&self, path: P) -> Result<()>[src]
pub fn remove_dir_all<P: AsRef<Path>>(&self, path: P) -> Result<()>[src]Removes a directory at this path, after removing all its contents. Use carefully!
This corresponds to std::fs::remove_dir_all, but only accesses paths
relative to self.
pub fn remove_open_dir(self) -> Result<()>[src]
pub fn remove_open_dir(self) -> Result<()>[src]Remove the directory referenced by self and consume self.
Note that even though this implementation works in terms of handles as much as possible, removal is not guaranteed to be atomic with respect to a concurrent rename of the directory.
pub fn remove_open_dir_all(self) -> Result<()>[src]
pub fn remove_open_dir_all(self) -> Result<()>[src]Removes the directory referenced by self, after removing all its contents, and
consume self. Use carefully!
Note that even though this implementation works in terms of handles as much as possible, removal is not guaranteed to be atomic with respect to a concurrent rename of the directory.
pub fn remove_file<P: AsRef<Path>>(&self, path: P) -> Result<()>[src]
pub fn remove_file<P: AsRef<Path>>(&self, path: P) -> Result<()>[src]Removes a file from a filesystem.
This corresponds to std::fs::remove_file, but only accesses paths
relative to self.
pub fn rename<P: AsRef<Path>, Q: AsRef<Path>>(
&self,
from: P,
to_dir: &Self,
to: Q
) -> Result<()>[src]
pub fn rename<P: AsRef<Path>, Q: AsRef<Path>>(
&self,
from: P,
to_dir: &Self,
to: Q
) -> Result<()>[src]Rename a file or directory to a new name, replacing the original file if to already exists.
This corresponds to std::fs::rename, but only accesses paths
relative to self.
pub fn set_permissions<P: AsRef<Path>>(
&self,
path: P,
perm: Permissions
) -> Result<()>[src]
pub fn set_permissions<P: AsRef<Path>>(
&self,
path: P,
perm: Permissions
) -> Result<()>[src]Changes the permissions found on a file or a directory.
This corresponds to std::fs::set_permissions, but only accesses paths
relative to self. Also, on some platforms, this function may fail if the
file or directory cannot be opened for reading or writing first.
pub fn symlink_metadata<P: AsRef<Path>>(&self, path: P) -> Result<Metadata>[src]
pub fn symlink_metadata<P: AsRef<Path>>(&self, path: P) -> Result<Metadata>[src]Query the metadata about a file without following symlinks.
This corresponds to std::fs::symlink_metadata, but only accesses paths
relative to self.
pub fn write<P: AsRef<Path>, C: AsRef<[u8]>>(
&self,
path: P,
contents: C
) -> Result<()>[src]
pub fn write<P: AsRef<Path>, C: AsRef<[u8]>>(
&self,
path: P,
contents: C
) -> Result<()>[src]Write a slice as the entire contents of a file.
This corresponds to std::fs::write, but only accesses paths
relative to self.
pub fn symlink_file<P: AsRef<Path>, Q: AsRef<Path>>(
&self,
src: P,
dst: Q
) -> Result<()>[src]
pub fn symlink_file<P: AsRef<Path>, Q: AsRef<Path>>(
&self,
src: P,
dst: Q
) -> Result<()>[src]Creates a new file symbolic link on a filesystem.
This corresponds to std::os::windows::fs::symlink_file, but only accesses paths
relative to self.
pub fn symlink_dir<P: AsRef<Path>, Q: AsRef<Path>>(
&self,
src: P,
dst: Q
) -> Result<()>[src]
pub fn symlink_dir<P: AsRef<Path>, Q: AsRef<Path>>(
&self,
src: P,
dst: Q
) -> Result<()>[src]Creates a new directory symlink on a filesystem.
This corresponds to std::os::windows::fs::symlink_dir, but only accesses paths
relative to self.
pub fn try_clone(&self) -> Result<Self>[src]
pub fn try_clone(&self) -> Result<Self>[src]Creates a new Dir instance that shares the same underlying file handle as the existing
Dir instance.
pub fn exists<P: AsRef<Path>>(&self, path: P) -> bool[src]
pub fn exists<P: AsRef<Path>>(&self, path: P) -> bool[src]Returns true if the path points at an existing entity.
This corresponds to std::path::Path::exists, but only
accesses paths relative to self.
pub fn is_file<P: AsRef<Path>>(&self, path: P) -> bool[src]
pub fn is_file<P: AsRef<Path>>(&self, path: P) -> bool[src]Returns true if the path exists on disk and is pointing at a regular file.
This corresponds to std::path::Path::is_file, but only
accesses paths relative to self.
pub fn is_dir<P: AsRef<Path>>(&self, path: P) -> bool[src]
pub fn is_dir<P: AsRef<Path>>(&self, path: P) -> bool[src]Checks if path is a directory.
This is similar to std::path::Path::is_dir in that it checks if path relative to
Dir is a directory. This function will traverse symbolic links to query information about
the destination file. In case of broken symbolic links, this will return false.
Trait Implementations
impl AsRawHandle for Dir[src]
impl AsRawHandle for Dir[src]fn as_raw_handle(&self) -> RawHandle[src]
fn as_raw_handle(&self) -> RawHandle[src]Extracts the raw handle, without taking any ownership.
impl AsRawHandleOrSocket for Dir[src]
impl AsRawHandleOrSocket for Dir[src]fn as_raw_handle_or_socket(&self) -> RawHandleOrSocket[src]
fn as_raw_handle_or_socket(&self) -> RawHandleOrSocket[src]Like AsRawHandle::as_raw_handle and AsRawSocket::as_raw_socket
but can return either type. Read more
impl FromRawHandle for Dir[src]
impl FromRawHandle for Dir[src]unsafe fn from_raw_handle(handle: RawHandle) -> Self[src]
unsafe fn from_raw_handle(handle: RawHandle) -> Self[src]To prevent race conditions on Windows, the handle must be opened without
FILE_SHARE_DELETE.
impl IntoRawHandle for Dir[src]
impl IntoRawHandle for Dir[src]fn into_raw_handle(self) -> RawHandle[src]
fn into_raw_handle(self) -> RawHandle[src]Consumes this object, returning the raw underlying handle. Read more
impl IntoRawHandleOrSocket for Dir[src]
impl IntoRawHandleOrSocket for Dir[src]fn into_raw_handle_or_socket(self) -> RawHandleOrSocket[src]
fn into_raw_handle_or_socket(self) -> RawHandleOrSocket[src]Like IntoRawHandle::into_raw_handle and
IntoRawSocket::into_raw_socket but can return either type. Read more
impl OwnsRaw for Dir[src]
Auto Trait Implementations
impl RefUnwindSafe for Dir
impl Send for Dir
impl Sync for Dir
impl Unpin for Dir
impl UnwindSafe for Dir
Blanket Implementations
impl<T> AsUnsafeFile for T where
T: AsRawHandle + AsUnsafeHandle + OwnsRaw, [src]
impl<T> AsUnsafeFile for T where
T: AsRawHandle + AsUnsafeHandle + OwnsRaw, [src]pub fn as_unsafe_file(&self) -> UnsafeFile[src]
pub fn as_unsafe_file(&self) -> UnsafeFile[src]Return the contained unsafe file.
fn as_file_view(&self) -> View<'_, File>[src]
fn as_file_view(&self) -> View<'_, File>[src]Utility for returning a value which dereferences to a &File or
&mut File. Read more
unsafe fn as_unscoped_file_view(&self) -> View<'static, File>[src]
unsafe fn as_unscoped_file_view(&self) -> View<'static, File>[src]Like as_file_view, but returns a value which is not explicitly tied
to the lifetime of self. Read more
impl<T> AsUnsafeHandle for T where
T: AsRawHandleOrSocket + OwnsRaw, [src]
impl<T> AsUnsafeHandle for T where
T: AsRawHandleOrSocket + OwnsRaw, [src]pub fn as_unsafe_handle(&self) -> UnsafeHandle[src]
pub fn as_unsafe_handle(&self) -> UnsafeHandle[src]Return the contained unsafe handle.
impl<T> BorrowMut<T> for T where
T: ?Sized, [src]
impl<T> BorrowMut<T> for T where
T: ?Sized, [src]pub fn borrow_mut(&mut self) -> &mut T[src]
pub fn borrow_mut(&mut self) -> &mut T[src]Mutably borrows from an owned value. Read more
impl<T> FromUnsafeFile for T where
T: FromRawHandle + OwnsRaw, [src]
impl<T> FromUnsafeFile for T where
T: FromRawHandle + OwnsRaw, [src]pub unsafe fn from_unsafe_file(unsafe_file: UnsafeFile) -> T[src]
pub unsafe fn from_unsafe_file(unsafe_file: UnsafeFile) -> T[src]Convert an unsafe file into a Self. Read more
fn from_filelike<Filelike>(filelike: Filelike) -> Self where
Filelike: IntoUnsafeFile, [src]
fn from_filelike<Filelike>(filelike: Filelike) -> Self where
Filelike: IntoUnsafeFile, [src]Convert from a type which implements IntoUnsafeFile into a type that
implements FromUnsafeFile. Read more
impl<T> IntoUnsafeFile for T where
T: IntoRawHandle + IntoUnsafeHandle + OwnsRaw, [src]
impl<T> IntoUnsafeFile for T where
T: IntoRawHandle + IntoUnsafeHandle + OwnsRaw, [src]pub fn into_unsafe_file(self) -> UnsafeFile[src]
pub fn into_unsafe_file(self) -> UnsafeFile[src]Convert self into an unsafe file.
impl<T> IntoUnsafeHandle for T where
T: IntoRawHandleOrSocket + OwnsRaw, [src]
impl<T> IntoUnsafeHandle for T where
T: IntoRawHandleOrSocket + OwnsRaw, [src]pub fn into_unsafe_handle(self) -> UnsafeHandle[src]
pub fn into_unsafe_handle(self) -> UnsafeHandle[src]Convert self into an unsafe handle.
impl<T> SetTimes for T where
T: AsUnsafeFile,
impl<T> SetTimes for T where
T: AsUnsafeFile,