pub struct File { /* private fields */ }
Expand description
A reference to an open file on a filesystem.
This corresponds to std::fs::File
.
This File
has no open
or create
methods. To open or create a file,
first obtain a Dir
containing the path, and then call Dir::open
or
Dir::create
.
Implementations§
Source§impl File
impl File
Sourcepub fn from_std(std: File) -> Self
pub fn from_std(std: File) -> Self
Constructs a new instance of Self
from the given std::fs::File
.
This grants access the resources the std::fs::File
instance already
has access to.
Sourcepub fn into_std(self) -> File
pub fn into_std(self) -> File
Consumes self
and returns a std::fs::File
.
Sourcepub fn sync_all(&self) -> Result<()>
pub fn sync_all(&self) -> Result<()>
Attempts to sync all OS-internal metadata to disk.
This corresponds to std::fs::File::sync_all
.
Sourcepub fn sync_data(&self) -> Result<()>
pub fn sync_data(&self) -> Result<()>
This function is similar to sync_all
, except that it may not
synchronize file metadata to a filesystem.
This corresponds to std::fs::File::sync_data
.
Sourcepub fn set_len(&self, size: u64) -> Result<()>
pub fn set_len(&self, size: u64) -> Result<()>
Truncates or extends the underlying file, updating the size of this file to become size.
This corresponds to std::fs::File::set_len
.
Sourcepub fn metadata(&self) -> Result<Metadata>
pub fn metadata(&self) -> Result<Metadata>
Queries metadata about the underlying file.
This corresponds to std::fs::File::metadata
.
Sourcepub fn try_clone(&self) -> Result<Self>
pub fn try_clone(&self) -> Result<Self>
Creates a new File
instance that shares the same underlying file
handle as the existing File
instance.
This corresponds to std::fs::File::try_clone
.
Sourcepub fn set_permissions(&self, perm: Permissions) -> Result<()>
pub fn set_permissions(&self, perm: Permissions) -> Result<()>
Changes the permissions on the underlying file.
This corresponds to std::fs::File::set_permissions
.
Sourcepub fn open_ambient<P: AsRef<Path>>(
path: P,
ambient_authority: AmbientAuthority,
) -> Result<Self>
pub fn open_ambient<P: AsRef<Path>>( path: P, ambient_authority: AmbientAuthority, ) -> Result<Self>
Constructs a new instance of Self
in read-only mode by opening the
given path as a file using the host process’ ambient authority.
§Ambient Authority
This function is not sandboxed and may access any path that the host process has access to.
Sourcepub fn create_ambient<P: AsRef<Path>>(
path: P,
ambient_authority: AmbientAuthority,
) -> Result<Self>
pub fn create_ambient<P: AsRef<Path>>( path: P, ambient_authority: AmbientAuthority, ) -> Result<Self>
Constructs a new instance of Self
in write-only mode by opening,
creating or truncating, the given path as a file using the host
process’ ambient authority.
§Ambient Authority
This function is not sandboxed and may access any path that the host process has access to.
Sourcepub fn open_ambient_with<P: AsRef<Path>>(
path: P,
options: &OpenOptions,
ambient_authority: AmbientAuthority,
) -> Result<Self>
pub fn open_ambient_with<P: AsRef<Path>>( path: P, options: &OpenOptions, ambient_authority: AmbientAuthority, ) -> Result<Self>
Constructs a new instance of Self
with the options specified by
options
by opening the given path as a file using the host process’
ambient authority.
§Ambient Authority
This function is not sandboxed and may access any path that the host process has access to.
Sourcepub fn options() -> OpenOptions
pub fn options() -> OpenOptions
Returns a new OpenOptions
object.
This corresponds to std::fs::File::options
.
Trait Implementations§
Source§impl AsHandle for File
Available on Windows only.
impl AsHandle for File
Source§fn as_handle(&self) -> BorrowedHandle<'_>
fn as_handle(&self) -> BorrowedHandle<'_>
Source§impl AsHandleOrSocket for File
Available on Windows only.
impl AsHandleOrSocket for File
Source§fn as_handle_or_socket(&self) -> BorrowedHandleOrSocket<'_>
fn as_handle_or_socket(&self) -> BorrowedHandleOrSocket<'_>
AsHandle::as_handle
and AsSocket::as_socket
but can return either type.Source§impl AsRawHandle for File
Available on Windows only.
impl AsRawHandle for File
Source§fn as_raw_handle(&self) -> RawHandle
fn as_raw_handle(&self) -> RawHandle
Source§impl AsRawHandleOrSocket for File
Available on Windows only.
impl AsRawHandleOrSocket for File
Source§fn as_raw_handle_or_socket(&self) -> RawHandleOrSocket
fn as_raw_handle_or_socket(&self) -> RawHandleOrSocket
AsRawHandle::as_raw_handle
and AsRawSocket::as_raw_socket
but can return either type.Source§impl From<File> for OwnedHandle
Available on Windows only.
impl From<File> for OwnedHandle
Source§fn from(file: File) -> OwnedHandle
fn from(file: File) -> OwnedHandle
Source§impl From<File> for OwnedHandleOrSocket
Available on Windows only.
impl From<File> for OwnedHandleOrSocket
Source§impl From<OwnedHandle> for File
Available on Windows only.
impl From<OwnedHandle> for File
Source§fn from(handle: OwnedHandle) -> Self
fn from(handle: OwnedHandle) -> Self
Source§impl FromRawHandle for File
Available on Windows only.
impl FromRawHandle for File
Source§unsafe fn from_raw_handle(handle: RawHandle) -> Self
unsafe fn from_raw_handle(handle: RawHandle) -> Self
Source§impl IntoRawHandle for File
Available on Windows only.
impl IntoRawHandle for File
Source§fn into_raw_handle(self) -> RawHandle
fn into_raw_handle(self) -> RawHandle
Source§impl IntoRawHandleOrSocket for File
Available on Windows only.
impl IntoRawHandleOrSocket for File
Source§fn into_raw_handle_or_socket(self) -> RawHandleOrSocket
fn into_raw_handle_or_socket(self) -> RawHandleOrSocket
IntoRawHandle::into_raw_handle
and
IntoRawSocket::into_raw_socket
but can return either type.Source§impl Read for &File
impl Read for &File
Source§fn read(&mut self, buf: &mut [u8]) -> Result<usize>
fn read(&mut self, buf: &mut [u8]) -> Result<usize>
Source§fn read_vectored(&mut self, bufs: &mut [IoSliceMut<'_>]) -> Result<usize>
fn read_vectored(&mut self, bufs: &mut [IoSliceMut<'_>]) -> Result<usize>
read
, except that it reads into a slice of buffers. Read moreSource§fn read_exact(&mut self, buf: &mut [u8]) -> Result<()>
fn read_exact(&mut self, buf: &mut [u8]) -> Result<()>
buf
. Read moreSource§fn read_to_end(&mut self, buf: &mut Vec<u8>) -> Result<usize>
fn read_to_end(&mut self, buf: &mut Vec<u8>) -> Result<usize>
buf
. Read moreSource§fn read_to_string(&mut self, buf: &mut String) -> Result<usize>
fn read_to_string(&mut self, buf: &mut String) -> Result<usize>
buf
. Read moreSource§fn is_read_vectored(&self) -> bool
fn is_read_vectored(&self) -> bool
can_vector
)Source§fn read_buf(&mut self, buf: BorrowedCursor<'_>) -> Result<(), Error>
fn read_buf(&mut self, buf: BorrowedCursor<'_>) -> Result<(), Error>
read_buf
)Source§fn read_buf_exact(&mut self, cursor: BorrowedCursor<'_>) -> Result<(), Error>
fn read_buf_exact(&mut self, cursor: BorrowedCursor<'_>) -> Result<(), Error>
read_buf
)cursor
. Read more1.0.0 · Source§fn by_ref(&mut self) -> &mut Selfwhere
Self: Sized,
fn by_ref(&mut self) -> &mut Selfwhere
Self: Sized,
Read
. Read moreSource§impl Read for File
impl Read for File
Source§fn read(&mut self, buf: &mut [u8]) -> Result<usize>
fn read(&mut self, buf: &mut [u8]) -> Result<usize>
Source§fn read_vectored(&mut self, bufs: &mut [IoSliceMut<'_>]) -> Result<usize>
fn read_vectored(&mut self, bufs: &mut [IoSliceMut<'_>]) -> Result<usize>
read
, except that it reads into a slice of buffers. Read moreSource§fn read_exact(&mut self, buf: &mut [u8]) -> Result<()>
fn read_exact(&mut self, buf: &mut [u8]) -> Result<()>
buf
. Read moreSource§fn read_to_end(&mut self, buf: &mut Vec<u8>) -> Result<usize>
fn read_to_end(&mut self, buf: &mut Vec<u8>) -> Result<usize>
buf
. Read moreSource§fn read_to_string(&mut self, buf: &mut String) -> Result<usize>
fn read_to_string(&mut self, buf: &mut String) -> Result<usize>
buf
. Read moreSource§fn is_read_vectored(&self) -> bool
fn is_read_vectored(&self) -> bool
can_vector
)Source§fn read_buf(&mut self, buf: BorrowedCursor<'_>) -> Result<(), Error>
fn read_buf(&mut self, buf: BorrowedCursor<'_>) -> Result<(), Error>
read_buf
)Source§fn read_buf_exact(&mut self, cursor: BorrowedCursor<'_>) -> Result<(), Error>
fn read_buf_exact(&mut self, cursor: BorrowedCursor<'_>) -> Result<(), Error>
read_buf
)cursor
. Read more1.0.0 · Source§fn by_ref(&mut self) -> &mut Selfwhere
Self: Sized,
fn by_ref(&mut self) -> &mut Selfwhere
Self: Sized,
Read
. Read moreSource§impl Seek for &File
impl Seek for &File
Source§fn seek(&mut self, pos: SeekFrom) -> Result<u64>
fn seek(&mut self, pos: SeekFrom) -> Result<u64>
Source§fn stream_position(&mut self) -> Result<u64>
fn stream_position(&mut self) -> Result<u64>
1.55.0 · Source§fn rewind(&mut self) -> Result<(), Error>
fn rewind(&mut self) -> Result<(), Error>
Source§impl Seek for File
impl Seek for File
Source§fn seek(&mut self, pos: SeekFrom) -> Result<u64>
fn seek(&mut self, pos: SeekFrom) -> Result<u64>
Source§fn stream_position(&mut self) -> Result<u64>
fn stream_position(&mut self) -> Result<u64>
1.55.0 · Source§fn rewind(&mut self) -> Result<(), Error>
fn rewind(&mut self) -> Result<(), Error>
Source§impl Write for &File
impl Write for &File
Source§fn write(&mut self, buf: &[u8]) -> Result<usize>
fn write(&mut self, buf: &[u8]) -> Result<usize>
Source§fn flush(&mut self) -> Result<()>
fn flush(&mut self) -> Result<()>
Source§fn write_all(&mut self, buf: &[u8]) -> Result<()>
fn write_all(&mut self, buf: &[u8]) -> Result<()>
Source§fn is_write_vectored(&self) -> bool
fn is_write_vectored(&self) -> bool
can_vector
)Source§fn write_all_vectored(&mut self, bufs: &mut [IoSlice<'_>]) -> Result<()>
fn write_all_vectored(&mut self, bufs: &mut [IoSlice<'_>]) -> Result<()>
write_all_vectored
)Source§impl Write for File
impl Write for File
Source§fn write(&mut self, buf: &[u8]) -> Result<usize>
fn write(&mut self, buf: &[u8]) -> Result<usize>
Source§fn flush(&mut self) -> Result<()>
fn flush(&mut self) -> Result<()>
Source§fn write_all(&mut self, buf: &[u8]) -> Result<()>
fn write_all(&mut self, buf: &[u8]) -> Result<()>
Source§fn is_write_vectored(&self) -> bool
fn is_write_vectored(&self) -> bool
can_vector
)Source§fn write_all_vectored(&mut self, bufs: &mut [IoSlice<'_>]) -> Result<()>
fn write_all_vectored(&mut self, bufs: &mut [IoSlice<'_>]) -> Result<()>
write_all_vectored
)impl FilelikeViewType for File
Auto Trait Implementations§
impl Freeze for File
impl RefUnwindSafe for File
impl Send for File
impl Sync for File
impl Unpin for File
impl UnwindSafe for File
Blanket Implementations§
Source§impl<T> AsFilelike for Twhere
T: AsHandle,
impl<T> AsFilelike for Twhere
T: AsHandle,
Source§fn as_filelike(&self) -> BorrowedHandle<'_>
fn as_filelike(&self) -> BorrowedHandle<'_>
Source§fn as_filelike_view<Target>(&self) -> FilelikeView<'_, Target>where
Target: FilelikeViewType,
fn as_filelike_view<Target>(&self) -> FilelikeView<'_, Target>where
Target: FilelikeViewType,
&Target
. Read moreSource§impl<T> AsGrip for Twhere
T: AsHandleOrSocket,
impl<T> AsGrip for Twhere
T: AsHandleOrSocket,
Source§fn as_grip(&self) -> BorrowedHandleOrSocket<'_>
fn as_grip(&self) -> BorrowedHandleOrSocket<'_>
Source§impl<T> AsRawFilelike for Twhere
T: AsRawHandle,
impl<T> AsRawFilelike for Twhere
T: AsRawHandle,
Source§fn as_raw_filelike(&self) -> *mut c_void
fn as_raw_filelike(&self) -> *mut c_void
Source§impl<T> AsRawGrip for Twhere
T: AsRawHandleOrSocket,
impl<T> AsRawGrip for Twhere
T: AsRawHandleOrSocket,
Source§fn as_raw_grip(&self) -> RawHandleOrSocket
fn as_raw_grip(&self) -> RawHandleOrSocket
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
Source§impl<T> FromFilelike for Twhere
T: From<OwnedHandle>,
impl<T> FromFilelike for Twhere
T: From<OwnedHandle>,
Source§fn from_filelike(owned: OwnedHandle) -> T
fn from_filelike(owned: OwnedHandle) -> T
Self
from the given filelike object. Read moreSource§fn from_into_filelike<Owned>(owned: Owned) -> Twhere
Owned: IntoFilelike,
fn from_into_filelike<Owned>(owned: Owned) -> Twhere
Owned: IntoFilelike,
Self
from the given filelike object
converted from into_owned
. Read moreSource§impl<T> FromHandle for Twhere
T: From<OwnedHandle>,
impl<T> FromHandle for Twhere
T: From<OwnedHandle>,
Source§fn from_handle(owned_handle: OwnedHandle) -> T
fn from_handle(owned_handle: OwnedHandle) -> T
FromHandle::from_handle
is replaced by From<OwnedHandle>::from
Self
from the given handle. Read moreSource§fn from_into_handle<Owned>(into_owned: Owned) -> Self
fn from_into_handle<Owned>(into_owned: Owned) -> Self
Source§impl<T> FromRawFilelike for Twhere
T: FromRawHandle,
impl<T> FromRawFilelike for Twhere
T: FromRawHandle,
Source§unsafe fn from_raw_filelike(raw: *mut c_void) -> T
unsafe fn from_raw_filelike(raw: *mut c_void) -> T
Self
from the raw value.Source§impl<T> IntoFilelike for Twhere
T: Into<OwnedHandle>,
impl<T> IntoFilelike for Twhere
T: Into<OwnedHandle>,
Source§fn into_filelike(self) -> OwnedHandle
fn into_filelike(self) -> OwnedHandle
Source§impl<T> IntoGrip for Twhere
T: Into<OwnedHandleOrSocket>,
impl<T> IntoGrip for Twhere
T: Into<OwnedHandleOrSocket>,
Source§fn into_grip(self) -> OwnedHandleOrSocket
fn into_grip(self) -> OwnedHandleOrSocket
self
and convert into an OwnedGrip
.Source§impl<T> IntoHandle for Twhere
OwnedHandle: From<T>,
impl<T> IntoHandle for Twhere
OwnedHandle: From<T>,
Source§fn into_handle(self) -> OwnedHandle
fn into_handle(self) -> OwnedHandle
IntoHandle
is replaced by From<...> for OwnedHandle
or Into<OwnedHandle>
Source§impl<T> IntoRawFilelike for Twhere
T: IntoRawHandle,
impl<T> IntoRawFilelike for Twhere
T: IntoRawHandle,
Source§fn into_raw_filelike(self) -> *mut c_void
fn into_raw_filelike(self) -> *mut c_void
Source§impl<T> IntoRawGrip for Twhere
T: IntoRawHandleOrSocket,
impl<T> IntoRawGrip for Twhere
T: IntoRawHandleOrSocket,
Source§fn into_raw_grip(self) -> RawHandleOrSocket
fn into_raw_grip(self) -> RawHandleOrSocket
self
and convert into an RawGrip
.