pub struct TempDir { /* fields omitted */ }
A directory in the filesystem that is automatically deleted when
it goes out of scope.
The TempDir
type creates a directory on the file system that
is deleted once it goes out of scope. At construction, the
TempDir
creates a new directory with a randomly generated name,
and with a prefix of your choosing.
The default constructor, TempDir::new
, creates directories in
the location returned by std::env::temp_dir()
, but TempDir
can be configured to manage a temporary directory in any location
by constructing with TempDir::new_in
.
After creating a TempDir
, work with the file system by doing
standard std::fs
file system operations on its Path
,
which can be retrieved with TempDir::path
. Once the TempDir
value is dropped, the directory at the path will be deleted, along
with any files and directories it contains. It is your responsibility
to ensure that no further file system operations are attempted
inside the temporary directory once it has been deleted.
Various platform-specific conditions may cause TempDir
to fail
to delete the underlying directory. It's important to ensure that
handles (like File
and ReadDir
) to files inside the
directory are dropped before the TempDir
goes out of scope. The
TempDir
destructor will silently ignore any errors in deleting
the directory; to instead handle errors call TempDir::close
.
Note that if the program exits before the TempDir
destructor is
run, such as via std::process::exit
, by segfaulting, or by
receiving a signal like SIGINT
, then the temporary directory
will not be deleted.
Attempts to make a temporary directory inside of env::temp_dir()
whose
name will have the prefix, prefix
. The directory and
everything inside it will be automatically deleted once the
returned TempDir
is destroyed.
If the directory can not be created, Err
is returned.
use std::fs::File;
use std::io::Write;
use tempdir::TempDir;
let tmp_dir = TempDir::new("example")?;
let file_path = tmp_dir.path().join("my-temporary-note.txt");
let mut tmp_file = File::create(file_path)?;
writeln!(tmp_file, "Brian was here. Briefly.")?;
Attempts to make a temporary directory inside of tmpdir
whose name will have the prefix prefix
. The directory and
everything inside it will be automatically deleted once the
returned TempDir
is destroyed.
If the directory can not be created, Err
is returned.
use std::fs::{self, File};
use std::io::Write;
use tempdir::TempDir;
let tmp_dir = TempDir::new_in(".", "example")?;
let file_path = tmp_dir.path().join("my-temporary-note.txt");
let mut tmp_file = File::create(file_path)?;
writeln!(tmp_file, "Brian was here. Briefly.")?;
Accesses the Path
to the temporary directory.
use tempdir::TempDir;
let tmp_path;
{
let tmp_dir = TempDir::new("example")?;
tmp_path = tmp_dir.path().to_owned();
assert!(tmp_path.exists());
}
assert_eq!(tmp_path.exists(), false);
Unwraps the Path
contained in the TempDir
and
returns it. This destroys the TempDir
without deleting the
directory represented by the returned Path
.
use std::fs;
use tempdir::TempDir;
let tmp_dir = TempDir::new("example")?;
let tmp_path = tmp_dir.into_path();
fs::remove_dir_all(tmp_path)?;
Closes and removes the temporary directory, returing a Result
.
Although TempDir
removes the directory on drop, in the destructor
any errors are ignored. To detect errors cleaning up the temporary
directory, call close
instead.
This function may return a variety of std::io::Error
s that result from deleting
the files and directories contained with the temporary directory,
as well as from deleting the temporary directory itself. These errors
may be platform specific.
use std::fs::File;
use std::io::Write;
use tempdir::TempDir;
let tmp_dir = TempDir::new("example")?;
let file_path = tmp_dir.path().join("my-temporary-note.txt");
let mut tmp_file = File::create(file_path)?;
writeln!(tmp_file, "Brian was here. Briefly.")?;
drop(tmp_file);
tmp_dir.close()?;
Executes the destructor for this type. Read more
Formats the value using the given formatter. Read more
🔬 This is a nightly-only experimental API. (try_from
)
The type returned in the event of a conversion error.
🔬 This is a nightly-only experimental API. (try_from
)
Immutably borrows from an owned value. Read more
Mutably borrows from an owned value. Read more
🔬 This is a nightly-only experimental API. (try_from
)
The type returned in the event of a conversion error.
🔬 This is a nightly-only experimental API. (try_from
)
🔬 This is a nightly-only experimental API. (get_type_id
)
this method will likely be replaced by an associated static
impl<T> Typeable for T where T: Any, | |
Get the TypeId
of this object.
impl<T> DebugAny for T where T: Any + Debug, | |
impl<T> UnsafeAny for T where T: Any, | |