63 lines
1.8 KiB
Markdown
63 lines
1.8 KiB
Markdown
|
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.
|