# tokio::fs - Rust
API documentation for the Rust `fs` mod in crate `tokio`.
Keywords: rust, rustlang, rust-lang, fs

# Module tokio::fs [−] [src]

Asynchronous file and standard stream adaptation.

This module contains utility methods and adapter types for input/output to files or standard streams (`Stdin`, `Stdout`, `Stderr`), and filesystem manipulation, for use within (and only within) a Tokio runtime.

Tasks run by worker threads should not block, as this could delay servicing reactor events. Portable filesystem operations are blocking, however. This module offers adapters which use a `blocking` annotation to inform the runtime that a blocking operation is required. When necessary, this allows the runtime to convert the current thread from a worker to a backup thread, where blocking is acceptable.

## Usage

Where possible, users should prefer the provided asynchronous-specific traits such as `AsyncRead`, or methods returning a `Future` or `Poll` type. Adaptions also extend to traits like `std::io::Read` where methods return `std::io::Result`. Be warned that these adapted methods may return `std::io::ErrorKind::WouldBlock` if a worker thread can not be converted to a backup thread immediately.

## Structs

DirBuilder | A builder for creating directories in various manners.
DirEntry | Entries returned by the `ReadDir` stream.
File | A reference to an open file on the filesystem.
OpenOptions | Options and flags which can be used to configure how a file is opened.
ReadDir | Read the the entries in a directory.

## Functions

canonicalize | Returns the canonical, absolute form of a path with all intermediate components normalized and symbolic links resolved.
copy | Copies the contents of one file to another. This function will also copy the permission bits of the original file to the destination file. This function will overwrite the contents of to.
create_dir | Creates a new, empty directory at the provided path
create_dir_all | Recursively creates a directory and all of its parent components if they are missing.
hard_link | Creates a new hard link on the filesystem.
metadata | Given a path, queries the file system to get information about a file, directory, etc.
read | Reads the entire contents of a file into a bytes vector.
read_dir | Returns a stream over the entries within a directory.
read_link | Reads a symbolic link, returning the file that the link points to.
read_to_string | Creates a future which will open a file for reading and read the entire contents into a string and return said string.
remove_dir | Removes an existing, empty directory.
remove_dir_all | Removes a directory at this path, after removing all its contents. Use carefully!
remove_file | Removes a file from the filesystem.
rename | Renames a file or directory to a new name, replacing the original file if `to` already exists.
set_permissions | Changes the permissions found on a file or a directory.
symlink | Creates a new symbolic link on the filesystem.
symlink_metadata | Queries the file system metadata for a path.
write | Creates a future that will open a file for writing and write the entire contents of `contents` to it.