Struct tempfile::TempPath [−][src]
A path to a named temporary file without an open file handle.
This is useful when the temporary file needs to be used by a child process, for example.
When dropped, the temporary file is deleted.
Implementations
impl TempPath
[src]
pub fn close(self) -> Result<()>
[src]
Close and remove the temporary file.
Use this if you want to detect errors in deleting the file.
Errors
If the file cannot be deleted, Err
is returned.
Examples
use tempfile::NamedTempFile; let file = NamedTempFile::new()?; // Close the file, but keep the path to it around. let path = file.into_temp_path(); // By closing the `TempPath` explicitly, we can check that it has // been deleted successfully. If we don't close it explicitly, the // file will still be deleted when `file` goes out of scope, but we // won't know whether deleting the file succeeded. path.close()?;
pub fn persist<P: AsRef<Path>>(
self,
new_path: P
) -> Result<(), PathPersistError>
[src]
self,
new_path: P
) -> Result<(), PathPersistError>
Persist the temporary file at the target path.
If a file exists at the target path, persist will atomically replace it.
If this method fails, it will return self
in the resulting
PathPersistError
.
Note: Temporary files cannot be persisted across filesystems. Also
neither the file contents nor the containing directory are
synchronized, so the update may not yet have reached the disk when
persist
returns.
Security
Only use this method if you’re positive that a temporary file cleaner won’t have deleted your file. Otherwise, you might end up persisting an attacker controlled file.
Errors
If the file cannot be moved to the new location, Err
is returned.
Examples
use tempfile::NamedTempFile; let mut file = NamedTempFile::new()?; writeln!(file, "Brian was here. Briefly.")?; let path = file.into_temp_path(); path.persist("./saved_file.txt")?;
pub fn persist_noclobber<P: AsRef<Path>>(
self,
new_path: P
) -> Result<(), PathPersistError>
[src]
self,
new_path: P
) -> Result<(), PathPersistError>
Persist the temporary file at the target path if and only if no file exists there.
If a file exists at the target path, fail. If this method fails, it will
return self
in the resulting PathPersistError
.
Note: Temporary files cannot be persisted across filesystems. Also Note: This method is not atomic. It can leave the original link to the temporary file behind.
Security
Only use this method if you’re positive that a temporary file cleaner won’t have deleted your file. Otherwise, you might end up persisting an attacker controlled file.
Errors
If the file cannot be moved to the new location or a file already exists
there, Err
is returned.
Examples
use tempfile::NamedTempFile; let mut file = NamedTempFile::new()?; writeln!(file, "Brian was here. Briefly.")?; let path = file.into_temp_path(); path.persist_noclobber("./saved_file.txt")?;
pub fn keep(self) -> Result<PathBuf, PathPersistError>
[src]
Keep the temporary file from being deleted. This function will turn the temporary file into a non-temporary file without moving it.
Errors
On some platforms (e.g., Windows), we need to mark the file as non-temporary. This operation could fail.
Examples
use tempfile::NamedTempFile; let mut file = NamedTempFile::new()?; writeln!(file, "Brian was here. Briefly.")?; let path = file.into_temp_path(); let path = path.keep()?;
Trait Implementations
impl AsRef<OsStr> for TempPath
[src]
impl AsRef<Path> for TempPath
[src]
impl Debug for TempPath
[src]
impl Deref for TempPath
[src]
impl Drop for TempPath
[src]
impl From<PathPersistError> for TempPath
[src]
fn from(error: PathPersistError) -> TempPath
[src]
Auto Trait Implementations
impl RefUnwindSafe for TempPath
impl Send for TempPath
impl Sync for TempPath
impl Unpin for TempPath
impl UnwindSafe for TempPath
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
pub fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
pub fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
[src]
V: MultiLane<T>,