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<P: AsRef<Path>, Q: AsRef<Path>>(
&self,
src: P,
dst: Q
) -> Result<()>
[src]
pub fn symlink<P: AsRef<Path>, Q: AsRef<Path>>(
&self,
src: P,
dst: Q
) -> Result<()>
[src]Creates a new symbolic link on a filesystem.
This corresponds to std::os::unix::fs::symlink
, but only accesses paths
relative to self
.
pub fn bind_unix_listener<P: AsRef<Path>>(
&self,
path: P
) -> Result<UnixListener>
[src]
pub fn bind_unix_listener<P: AsRef<Path>>(
&self,
path: P
) -> Result<UnixListener>
[src]Creates a new UnixListener
bound to the specified socket.
This corresponds to std::os::unix::net::UnixListener::bind
, but only
accesses paths relative to self
.
XXX: This function is not yet implemented.
pub fn connect_unix_stream<P: AsRef<Path>>(&self, path: P) -> Result<UnixStream>
[src]
pub fn connect_unix_stream<P: AsRef<Path>>(&self, path: P) -> Result<UnixStream>
[src]Connects to the socket named by path.
This corresponds to std::os::unix::net::UnixStream::connect
, but only
accesses paths relative to self
.
XXX: This function is not yet implemented.
pub fn bind_unix_datagram<P: AsRef<Path>>(
&self,
path: P
) -> Result<UnixDatagram>
[src]
pub fn bind_unix_datagram<P: AsRef<Path>>(
&self,
path: P
) -> Result<UnixDatagram>
[src]Creates a Unix datagram socket bound to the given path.
This corresponds to std::os::unix::net::UnixDatagram::bind
, but only
accesses paths relative to self
.
XXX: This function is not yet implemented.
pub fn connect_unix_datagram<P: AsRef<Path>>(
&self,
_unix_datagram: &UnixDatagram,
path: P
) -> Result<()>
[src]
pub fn connect_unix_datagram<P: AsRef<Path>>(
&self,
_unix_datagram: &UnixDatagram,
path: P
) -> Result<()>
[src]Connects the socket to the specified address.
This corresponds to std::os::unix::net::UnixDatagram::connect
, but only
accesses paths relative to self
.
XXX: This function is not yet implemented.
pub fn send_to_unix_datagram_addr<P: AsRef<Path>>(
&self,
_unix_datagram: &UnixDatagram,
buf: &[u8],
path: P
) -> Result<usize>
[src]
pub fn send_to_unix_datagram_addr<P: AsRef<Path>>(
&self,
_unix_datagram: &UnixDatagram,
buf: &[u8],
path: P
) -> Result<usize>
[src]Sends data on the socket to the specified address.
This corresponds to std::os::unix::net::UnixDatagram::send_to
, but only
accesses paths relative to self
.
XXX: This function is not yet implemented.
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 FromRawFd for Dir
[src]
impl FromRawFd for Dir
[src]unsafe fn from_raw_fd(fd: RawFd) -> Self
[src]
unsafe fn from_raw_fd(fd: RawFd) -> Self
[src]Constructs a new instance of Self
from the given raw file
descriptor. Read more
impl IntoRawFd for Dir
[src]
impl IntoRawFd for Dir
[src]fn into_raw_fd(self) -> RawFd
[src]
fn into_raw_fd(self) -> RawFd
[src]Consumes this object, returning the raw underlying file descriptor. 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: AsRawFd + OwnsRaw,
[src]
impl<T> AsUnsafeFile for T where
T: AsRawFd + 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: AsRawFd + OwnsRaw,
[src]
impl<T> AsUnsafeHandle for T where
T: AsRawFd + 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> AsUnsafeSocket for T where
T: AsRawFd + OwnsRaw,
[src]
impl<T> AsUnsafeSocket for T where
T: AsRawFd + OwnsRaw,
[src]pub fn as_unsafe_socket(&self) -> UnsafeSocket
[src]
pub fn as_unsafe_socket(&self) -> UnsafeSocket
[src]Return the contained unsafe socket.
fn as_tcp_stream_view(&self) -> View<'_, TcpStream>
[src]
fn as_tcp_stream_view(&self) -> View<'_, TcpStream>
[src]Utility for returning a value which dereferences to a &TcpStream
or
&mut TcpStream
. Read more
unsafe fn as_unscoped_tcp_stream_view(&self) -> View<'static, TcpStream>
[src]
unsafe fn as_unscoped_tcp_stream_view(&self) -> View<'static, TcpStream>
[src]Like as_tcp_stream_view
, but returns a value which is not explicitly
tied to the lifetime of self
. Read more
fn as_tcp_listener_view(&self) -> View<'_, TcpListener>
[src]
fn as_tcp_listener_view(&self) -> View<'_, TcpListener>
[src]Utility for returning a value which dereferences to a &TcpListener
or
&mut TcpListener
. Read more
unsafe fn as_unscoped_tcp_listener_view(&self) -> View<'static, TcpListener>
[src]
unsafe fn as_unscoped_tcp_listener_view(&self) -> View<'static, TcpListener>
[src]Like as_tcp_listener_view
, but returns a value which is not
explicitly tied to the lifetime of self
. Read more
fn as_udp_socket_view(&self) -> View<'_, UdpSocket>
[src]
fn as_udp_socket_view(&self) -> View<'_, UdpSocket>
[src]Utility for returning a value which dereferences to a &UdpSocket
or
&mut UdpSocket
. Read more
unsafe fn as_unscoped_udp_socket_view(&self) -> View<'static, UdpSocket>
[src]
unsafe fn as_unscoped_udp_socket_view(&self) -> View<'static, UdpSocket>
[src]Like as_udp_socket_view
, but returns a value which is not explicitly
tied to the lifetime of self
. Read more
fn as_unix_stream_view(&self) -> View<'_, UnixStream>
[src]
fn as_unix_stream_view(&self) -> View<'_, UnixStream>
[src]Utility for returning a value which dereferences to a &UnixStream
or
&mut UnixStream
. Read more
unsafe fn as_unscoped_unix_stream_view(&self) -> View<'static, UnixStream>
[src]
unsafe fn as_unscoped_unix_stream_view(&self) -> View<'static, UnixStream>
[src]Like as_unix_stream_view
, but returns a value which is not explicitly
tied to the lifetime of self
. Read more
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: FromRawFd + OwnsRaw,
[src]
impl<T> FromUnsafeFile for T where
T: FromRawFd + 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> FromUnsafeSocket for T where
T: FromRawFd + OwnsRaw,
[src]
impl<T> FromUnsafeSocket for T where
T: FromRawFd + OwnsRaw,
[src]pub unsafe fn from_unsafe_socket(unsafe_socket: UnsafeSocket) -> T
[src]
pub unsafe fn from_unsafe_socket(unsafe_socket: UnsafeSocket) -> T
[src]Convert an unsafe socket into a Self
. Read more
fn from_socketlike<Socketlike>(socketlike: Socketlike) -> Self where
Socketlike: IntoUnsafeSocket,
[src]
fn from_socketlike<Socketlike>(socketlike: Socketlike) -> Self where
Socketlike: IntoUnsafeSocket,
[src]Convert from a type which implements IntoUnsafeSocket
into a type
that implements FromUnsafeSocket
. Read more
impl<T> IntoUnsafeFile for T where
T: IntoRawFd + OwnsRaw,
[src]
impl<T> IntoUnsafeFile for T where
T: IntoRawFd + 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: IntoRawFd + OwnsRaw,
[src]
impl<T> IntoUnsafeHandle for T where
T: IntoRawFd + 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> IntoUnsafeSocket for T where
T: IntoRawFd + OwnsRaw,
[src]
impl<T> IntoUnsafeSocket for T where
T: IntoRawFd + OwnsRaw,
[src]pub fn into_unsafe_socket(self) -> UnsafeSocket
[src]
pub fn into_unsafe_socket(self) -> UnsafeSocket
[src]Convert self
into an unsafe socket.
impl<T> SetTimes for T where
T: AsUnsafeFile,
impl<T> SetTimes for T where
T: AsUnsafeFile,