30 个版本
使用旧的 Rust 2015
0.4.3 | 2023 年 12 月 28 日 |
---|---|
0.4.2 | 2023 年 10 月 9 日 |
0.4.1 | 2023 年 4 月 12 日 |
0.4.0 | 2023 年 2 月 2 日 |
0.0.9 | 2015 年 3 月 15 日 |
#70 in 文件系统
433,253 个月下载量
在 58 个 Crates 中使用 (23 直接)
15KB
240 代码行
rust-atomicwrites
原子文件写入。在 POSIX 和 Windows 上都能工作。
基本思路是写入临时文件(在同一文件系统中),完成后移动它们。这避免了两个程序写入同一文件的问题。对于 AllowOverwrite
,使用 rename
。对于 DisallowOverwrite
,使用 link + unlink
来在目标路径已存在时引发错误。
这主要是同名 Python 包 的移植。
示例
use atomicwrites::{AtomicFile,DisallowOverwrite};
let af = AtomicFile::new("foo", DisallowOverwrite);
af.write(|f| {
f.write_all(b"HELLO")
})?;
替代方案
- tempfile 有一个
persist
方法做同样的事情。
许可证
在 MIT 许可下发布,见 LICENSE
。
依赖
~2–11MB
~129K SLoC