pub struct NamedTempFile { /* fields omitted */ }
A potential file in the filesystem that is automatically deleted when
it goes out of scope.
The NamedTempFile
type creates a directory on the file system that
is deleted once it goes out of scope. At construction, the
NamedTempFile
creates a new directory with a randomly generated name.
The constructor, [NamedTempFile::new(name)
], creates directories in
the location returned by std::env::temp_dir()
.
After creating a NamedTempFile
, work with the file system by doing
standard std::fs
file system operations on its Path
,
which can be retrieved with NamedTempFile::path()
. Once the NamedTempFile
value is dropped, the parent directory will be deleted, along with the file. 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 NamedTempFile
to fail
to delete the underlying directory. It's important to ensure that
handles (like File
and ReadDir
) to the file inside the
directory is dropped before the NamedTempFile
goes out of scope. The
NamedTempFile
destructor will silently ignore any errors in deleting
the directory; to instead handle errors call NamedTempFile::close()
.
Note that if the program exits before the NamedTempFile
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.
Create a temporary file.
use assert_fs::fixture::NamedTempFile;
let tmp_file = NamedTempFile::new("foo.rs").unwrap();
tmp_file.close().unwrap();
Attempts to make a temporary file inside of env::temp_dir()
.
The file and parent directory will be automatically deleted once the returned
NamedTempFile
is destroyed.
If the parent directory can not be created, Err
is returned.
use assert_fs::fixture::NamedTempFile;
let tmp_file = NamedTempFile::new("foo.rs").unwrap();
tmp_file.close().unwrap();
Conditionally persist the temporary file for debug purposes.
use assert_fs::fixture::NamedTempFile;
let tmp_file = NamedTempFile::new("foo.rs").unwrap().persist_if(true);
tmp_file.close().unwrap();
Accesses the Path
to the temporary file.
use assert_fs::fixture::NamedTempFile;
let tmp_file = NamedTempFile::new("foo.rs").unwrap();
println!("{}", tmp_file.path().display());
tmp_file.close().unwrap();
Closes and removes the temporary file and parent directory, returing a Result
.
Although NamedTempFile
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
temporary file and parent directory, These errors may be platform specific.
use assert_fs::fixture::NamedTempFile;
let tmp_file = NamedTempFile::new("foo.rs").unwrap();
tmp_file.close().unwrap();
Create an empty file at [ChildPath
]. Read more
Write a binary file at [ChildPath
]. Read more
Write (copy) a file to [ChildPath
]. 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
🔬 This is a nightly-only experimental API. (get_type_id
)
this method will likely be replaced by an associated static
🔬 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
)
Mutably borrows from an owned value. Read more