pub struct DirEntry(/* private fields */);
Expand description
An entry in a directory.
A stream of entries in a directory is returned by read_dir()
.
For Unix-specific options, import the DirEntryExt
trait.
Implementations§
§impl DirEntry
impl DirEntry
pub fn path(&self) -> PathBuf
pub fn path(&self) -> PathBuf
Returns the full path to this entry.
The full path is created by joining the original path passed to read_dir()
with the
name of this entry.
§Examples
use futures_lite::stream::StreamExt;
let mut dir = async_fs::read_dir(".").await?;
while let Some(entry) = dir.try_next().await? {
println!("{:?}", entry.path());
}
pub async fn metadata(&self) -> Result<Metadata, Error>
pub async fn metadata(&self) -> Result<Metadata, Error>
Reads the metadata for this entry.
This function will traverse symbolic links to read the metadata.
If you want to read metadata without following symbolic links, use symlink_metadata()
instead.
§Errors
An error will be returned in the following situations:
- This entry does not point to an existing file or directory anymore.
- The current process lacks permissions to read the metadata.
- Some other I/O error occurred.
§Examples
use futures_lite::stream::StreamExt;
let mut dir = async_fs::read_dir(".").await?;
while let Some(entry) = dir.try_next().await? {
println!("{:?}", entry.metadata().await?);
}
pub async fn file_type(&self) -> Result<FileType, Error>
pub async fn file_type(&self) -> Result<FileType, Error>
Reads the file type for this entry.
This function will not traverse symbolic links if this entry points at one.
If you want to read metadata with following symbolic links, use metadata()
instead.
§Errors
An error will be returned in the following situations:
- This entry does not point to an existing file or directory anymore.
- The current process lacks permissions to read this entry’s metadata.
- Some other I/O error occurred.
§Examples
use futures_lite::stream::StreamExt;
let mut dir = async_fs::read_dir(".").await?;
while let Some(entry) = dir.try_next().await? {
println!("{:?}", entry.file_type().await?);
}
Trait Implementations§
Auto Trait Implementations§
impl Freeze for DirEntry
impl RefUnwindSafe for DirEntry
impl Send for DirEntry
impl Sync for DirEntry
impl Unpin for DirEntry
impl UnwindSafe for DirEntry
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
source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait>
(where Trait: Downcast
) to Box<dyn Any>
. Box<dyn Any>
can
then be further downcast
into Box<ConcreteType>
where ConcreteType
implements Trait
.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
. Rc<Any>
can then be
further downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
.§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &Any
’s vtable from &Trait
’s.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s.§impl<T> DowncastSync for T
impl<T> DowncastSync for T
source§impl<T> FsChangeNote for T
impl<T> FsChangeNote for T
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
source§impl<T> Instrument for T
impl<T> Instrument for T
source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
source§impl<T> IntoEither for T
impl<T> IntoEither for T
source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moresource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more