Struct DirEntry
struct DirEntry(_)
Entries returned by the ReadDir iterator.
An instance of DirEntry represents an entry inside of a directory on the
filesystem. Each entry can be inspected via methods to learn about the full
path or possibly other metadata through per-platform extension traits.
Platform-specific behavior
On Unix, the DirEntry struct contains an internal reference to the open
directory. Holding DirEntry objects will consume a file handle even
after the ReadDir iterator is dropped.
Note that this may change in the future.
Implementations
impl DirEntry
fn path(self: &Self) -> PathBufReturns the full path to the file that this entry represents.
The full path is created by joining the original path to
read_dirwith the filename of this entry.Examples
use std::fs; fn main() -> std::io::Result<()> { for entry in fs::read_dir(".")? { let dir = entry?; println!("{:?}", dir.path()); } Ok(()) }This prints output like:
"./whatever.txt" "./foo.html" "./hello_world.rs"The exact text, of course, depends on what files you have in
..fn metadata(self: &Self) -> io::Result<Metadata>Returns the metadata for the file that this entry points at.
This function will not traverse symlinks if this entry points at a symlink. To traverse symlinks use
fs::metadataorfs::File::metadata.Platform-specific behavior
On Windows this function is cheap to call (no extra system calls needed), but on Unix platforms this function is the equivalent of calling
symlink_metadataon the path.Examples
use fs; if let Ok = read_dirfn file_type(self: &Self) -> io::Result<FileType>Returns the file type for the file that this entry points at.
This function will not traverse symlinks if this entry points at a symlink.
Platform-specific behavior
On Windows and most Unix platforms this function is free (no extra system calls needed), but some Unix platforms may require the equivalent call to
symlink_metadatato learn about the target file type.Examples
use fs; if let Ok = read_dirfn file_name(self: &Self) -> OsStringReturns the file name of this directory entry without any leading path component(s).
As an example, the output of the function will result in "foo" for all the following paths:
- "./foo"
- "/the/foo"
- "../../foo"
Examples
use fs; if let Ok = read_dir
impl Debug for DirEntry
fn fmt(self: &Self, f: &mut fmt::Formatter<'_>) -> fmt::Result
impl DirEntryExt for fs::DirEntry
fn ino(self: &Self) -> u64
impl DirEntryExt for fs::DirEntry
fn ino(self: &Self) -> u64
impl DirEntryExt2 for fs::DirEntry
fn file_name_ref(self: &Self) -> &OsStr
impl Freeze for DirEntry
impl RefUnwindSafe for DirEntry
impl Send for DirEntry
impl Sync for DirEntry
impl Unpin for DirEntry
impl UnwindSafe for DirEntry
impl<T> Any for DirEntry
fn type_id(self: &Self) -> TypeId
impl<T> Borrow for DirEntry
fn borrow(self: &Self) -> &T
impl<T> BorrowMut for DirEntry
fn borrow_mut(self: &mut Self) -> &mut T
impl<T> From for DirEntry
fn from(t: T) -> TReturns the argument unchanged.
impl<T, U> Into for DirEntry
fn into(self: Self) -> UCalls
U::from(self).That is, this conversion is whatever the implementation of
[From]<T> for Uchooses to do.
impl<T, U> TryFrom for DirEntry
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
impl<T, U> TryInto for DirEntry
fn try_into(self: Self) -> Result<U, <U as TryFrom<T>>::Error>