StagedFile
helps write data to a temporary file, and then gives the option
to commit the temporary file to a desired final file path.
If a file exists at the desired final file path, the file will be overwritten during a commit function call currently.
Only UNIX is currently supported.
toml
[dependencies]
staged_file = "0.3"
```rust use staged_file::StagedFile; use std::fs::File; use std::io::{prelude::*, LineWriter}; use std::path::Path;
let finalpath = Path::new("/a/file/path"); let stagedfile = StagedFile::withfinalpath(&final_path)?;
let text = b"Hello World!";
{
// The LineWriter code is in a block so that &staged_file
is not considered
// borrowed at the end of the block. Another way to get back the
// staged_file
is to call line_writer.into_inner()
.
let mut linewriter = LineWriter::new(&stagedfile);
linewriter.writeall(text)?;
line_writer.flush()?;
}
staged_file.commit()?;
asserteq!(std::fs::read(finalpath)?, text); ```
If the commit()
method is not called, then the staged file contents are
discarded.
The library is used as a dependency in this crate to create temporary directories.
A cross platform atomic file writes library.
Licensed under either of Apache License, Version 2.0 or MIT License at your option.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.