2 个不稳定版本
0.5.0 | 2024 年 5 月 15 日 |
---|---|
0.4.0 | 2023 年 8 月 28 日 |
0.3.0 |
|
0.2.0 |
|
0.1.0 |
|
#557 in 文件系统
17KB
293 行
StagedFile
StagedFile
帮助将数据写入临时文件,并提供将临时文件提交到所需最终文件路径的选项。
如果所需最终文件路径存在文件,则提交函数调用期间将覆盖该文件。
目前仅支持 UNIX。
安装
[dependencies]
staged_file = "0.5.0"
示例
use staged_file::StagedFile;
use std::fs::File;
use std::io::{prelude::*, LineWriter};
use std::path::Path;
let final_path = Path::new("/a/file/path");
let staged_file = StagedFile::with_final_path(&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 line_writer = LineWriter::new(&staged_file);
line_writer.write_all(text)?;
line_writer.flush()?;
}
staged_file.commit()?;
assert_eq!(std::fs::read(final_path)?, text);
如果没有调用 commit()
方法,则暂存文件内容将被丢弃。
其他库
该库作为依赖项在此 crate 中用于创建临时目录。
一个跨平台的原子文件写入库。
许可证
根据您的选择,在 Apache License 2.0 或 MIT 许可证下许可。
贡献
除非您明确声明,否则任何旨在包含在作品中并由您提交的贡献,根据 Apache-2.0 许可证定义,应如上所述双重许可,不附加任何额外条款或条件。
依赖关系
~3–12MB
~146K SLoC