Struct tokio_fs::DirEntry[][src]

pub struct DirEntry(_);

Entries returned by the ReadDir stream.

This is a specialized version of std::fs::DirEntry for usage from the Tokio runtime.

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.

Methods

impl DirEntry
[src]

Destructures the tokio_fs::DirEntry into a std::fs::DirEntry.

Returns the full path to the file that this entry represents.

The full path is created by joining the original path to read_dir with the filename of this entry.

Examples

use futures::{Future, Stream};

fn main() {
    let fut = tokio_fs::read_dir(".").flatten_stream().for_each(|dir| {
        println!("{:?}", dir.path());
        Ok(())
    }).map_err(|err| { eprintln!("Error: {:?}", err); () });
    tokio::run(fut);
}

This prints output like:

"./whatever.txt"
"./foo.html"
"./hello_world.rs"

The exact text, of course, depends on what files you have in ..

Returns the bare file name of this directory entry without any other leading path component.

Examples

use futures::{Future, Stream};

fn main() {
    let fut = tokio_fs::read_dir(".").flatten_stream().for_each(|dir| {
        // Here, `dir` is a `DirEntry`.
        println!("{:?}", dir.file_name());
        Ok(())
    }).map_err(|err| { eprintln!("Error: {:?}", err); () });
    tokio::run(fut);
}

Return the metadata 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 this function is cheap to call (no extra system calls needed), but on Unix platforms this function is the equivalent of calling symlink_metadata on the path.

Examples

use futures::{Future, Stream};
use futures::future::poll_fn;

fn main() {
    let fut = tokio_fs::read_dir(".").flatten_stream().for_each(|dir| {
        // Here, `dir` is a `DirEntry`.
        let path = dir.path();
        poll_fn(move || dir.poll_metadata()).map(move |metadata| {
            println!("{:?}: {:?}", path, metadata.permissions());
        })
    }).map_err(|err| { eprintln!("Error: {:?}", err); () });
    tokio::run(fut);
}

Return 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_metadata to learn about the target file type.

Examples

use futures::{Future, Stream};
use futures::future::poll_fn;

fn main() {
    let fut = tokio_fs::read_dir(".").flatten_stream().for_each(|dir| {
        // Here, `dir` is a `DirEntry`.
        let path = dir.path();
        poll_fn(move || dir.poll_file_type()).map(move |file_type| {
            // Now let's show our entry's file type!
            println!("{:?}: {:?}", path, file_type);
        })
    }).map_err(|err| { eprintln!("Error: {:?}", err); () });
    tokio::run(fut);
}

Trait Implementations

impl Debug for DirEntry
[src]

Formats the value using the given formatter. Read more

impl DirEntryExt for DirEntry
[src]

Returns the underlying d_ino field in the contained dirent structure. Read more

Auto Trait Implementations

impl Send for DirEntry

impl Sync for DirEntry