Struct tempfile::Builder[][src]

pub struct Builder<'a, 'b> { /* fields omitted */ }

Create a new temporary file or directory with custom parameters.

Implementations

impl<'a, 'b> Builder<'a, 'b>[src]

pub fn new() -> Self[src]

Create a new Builder.

Examples

Create a named temporary file and write some data into it:

use tempfile::Builder;

let named_tempfile = Builder::new()
    .prefix("my-temporary-note")
    .suffix(".txt")
    .rand_bytes(5)
    .tempfile()?;

let name = named_tempfile
    .path()
    .file_name().and_then(OsStr::to_str);

if let Some(name) = name {
    assert!(name.starts_with("my-temporary-note"));
    assert!(name.ends_with(".txt"));
    assert_eq!(name.len(), "my-temporary-note.txt".len() + 5);
}

Create a temporary directory and add a file to it:

use tempfile::Builder;

let dir = Builder::new()
    .prefix("my-temporary-dir")
    .rand_bytes(5)
    .tempdir()?;

let file_path = dir.path().join("my-temporary-note.txt");
let mut file = File::create(file_path)?;
writeln!(file, "Brian was here. Briefly.")?;

// By closing the `TempDir` explicitly, we can check that it has
// been deleted successfully. If we don't close it explicitly,
// the directory will still be deleted when `dir` goes out
// of scope, but we won't know whether deleting the directory
// succeeded.
drop(file);
dir.close()?;

pub fn prefix<S: AsRef<OsStr> + ?Sized>(&mut self, prefix: &'a S) -> &mut Self[src]

Set a custom filename prefix.

Path separators are legal but not advisable. Default: .tmp.

Examples

let named_tempfile = Builder::new()
    .prefix("my-temporary-note")
    .tempfile()?;

pub fn suffix<S: AsRef<OsStr> + ?Sized>(&mut self, suffix: &'b S) -> &mut Self[src]

Set a custom filename suffix.

Path separators are legal but not advisable. Default: empty.

Examples

let named_tempfile = Builder::new()
    .suffix(".txt")
    .tempfile()?;

pub fn rand_bytes(&mut self, rand: usize) -> &mut Self[src]

Set the number of random bytes.

Default: 6.

Examples

let named_tempfile = Builder::new()
    .rand_bytes(5)
    .tempfile()?;

pub fn world_accessible(&mut self, world_accessible: bool) -> &mut Self[src]

Set whether anyone should be able to read and write to the temporary file.

Default: false.

Security

Setting this to true leads to a file that can be read by other users. This means that you shouldn’t put any user-sensitive data into the temporary file.

Platform-specific behavior

Setting this to true currently only changes something on Unix, where the new file is created with 0o666 instead of 0o600 permissions.

Examples

let named_tempfile = Builder::new()
    .world_accessible(true)
    .tempfile()?;

pub fn append(&mut self, append: bool) -> &mut Self[src]

Set the file to be opened in append mode.

Default: false.

Examples

let named_tempfile = Builder::new()
    .append(true)
    .tempfile()?;

pub fn tempfile(&self) -> Result<NamedTempFile>[src]

Create the named temporary file.

Security

See the security docs on NamedTempFile.

Resource leaking

See the resource leaking docs on NamedTempFile.

Errors

If the file cannot be created, Err is returned.

Examples

let tempfile = Builder::new().tempfile()?;

pub fn tempfile_in<P: AsRef<Path>>(&self, dir: P) -> Result<NamedTempFile>[src]

Create the named temporary file in the specified directory.

Security

See the security docs on NamedTempFile.

Resource leaking

See the resource leaking docs on NamedTempFile.

Errors

If the file cannot be created, Err is returned.

Examples

let tempfile = Builder::new().tempfile_in("./")?;

pub fn tempdir(&self) -> Result<TempDir>[src]

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.

Resource leaking

See the resource leaking docs on TempDir.

Errors

If the directory can not be created, Err is returned.

Examples

use std::fs::File;
use std::io::Write;
use tempfile::Builder;

let tmp_dir = Builder::new().tempdir()?;

pub fn tempdir_in<P: AsRef<Path>>(&self, dir: P) -> Result<TempDir>[src]

Attempts to make a temporary directory inside of dir. The directory and everything inside it will be automatically deleted once the returned TempDir is destroyed.

Resource leaking

See the resource leaking docs on TempDir.

Errors

If the directory can not be created, Err is returned.

Examples

use std::fs::{self, File};
use std::io::Write;
use tempfile::Builder;

let tmp_dir = Builder::new().tempdir_in("./")?;

Trait Implementations

impl<'a, 'b> Clone for Builder<'a, 'b>[src]

impl<'a, 'b> Debug for Builder<'a, 'b>[src]

impl<'a, 'b> Default for Builder<'a, 'b>[src]

impl<'a, 'b> Eq for Builder<'a, 'b>[src]

impl<'a, 'b> PartialEq<Builder<'a, 'b>> for Builder<'a, 'b>[src]

impl<'a, 'b> StructuralEq for Builder<'a, 'b>[src]

impl<'a, 'b> StructuralPartialEq for Builder<'a, 'b>[src]

Auto Trait Implementations

impl<'a, 'b> RefUnwindSafe for Builder<'a, 'b>

impl<'a, 'b> Send for Builder<'a, 'b>

impl<'a, 'b> Sync for Builder<'a, 'b>

impl<'a, 'b> Unpin for Builder<'a, 'b>

impl<'a, 'b> UnwindSafe for Builder<'a, 'b>

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

impl<V, T> VZip<V> for T where
    V: MultiLane<T>, 
[src]