tempdir ======= A Rust library for creating a temporary directory and deleting its entire contents when the directory is dropped. [![Build Status](https://travis-ci.org/rust-lang-nursery/tempdir.svg?branch=master)](https://travis-ci.org/rust-lang-nursery/tempdir) [![Build status](https://ci.appveyor.com/api/projects/status/2mp24396db5t4hul/branch/master?svg=true)](https://ci.appveyor.com/project/rust-lang-libs/tempdir/branch/master) [Documentation](https://doc.rust-lang.org/tempdir) ## Deprecation Note The `tempdir` crate is being merged into [`tempfile`](https://github.com/Stebalien/tempfile). Please see [this issue](https://github.com/Stebalien/tempfile/issues/43) to track progress and direct new issues and pull requests to `tempfile`. ## Usage Add this to your `Cargo.toml`: ```toml [dependencies] tempdir = "0.3" ``` and this to your crate root: ```rust extern crate tempdir; ``` ## Example This sample method does the following: 1. Create a temporary directory in the default location with the given prefix. 2. Determine a file path in the directory and print it out. 3. Create a file inside the temp folder. 4. Write to the file and sync it to disk. 5. Close the directory, deleting the contents in the process. ```rust use std::io::{self, Write}; use std::fs::File; use tempdir::TempDir; fn write_temp_folder_with_files() -> io::Result<()> { let dir = TempDir::new("my_directory_prefix")?; let file_path = dir.path().join("foo.txt"); println!("{:?}", file_path); let mut f = File::create(file_path)?; f.write_all(b"Hello, world!")?; f.sync_all()?; dir.close()?; Ok(()) } ``` **Note:** Closing the directory is actually optional, as it would be done on drop. The benefit of closing here is that it allows possible errors to be handled.