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<(), Error>
 
fn write_all_vectored(&mut self, bufs: &mut [IoSlice<'_>]) -> Result<(), Error>
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<(), Error>
 
fn write_all_vectored(&mut self, bufs: &mut [IoSlice<'_>]) -> Result<(), Error>
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>::fromSelf 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.