3个稳定版本

2.0.0 2019年9月5日
1.0.1 2019年9月4日

#10 in #moved

CC0许可证

13KB
290

bak

crates.io docs

bak是一个用于安全地将文件移至一边的Rust库。

API有几个方法,但首先应该从bak::move_aside(PATH)开始。

move_aside("foo")将文件或目录"foo"移动到"foo.bak",如果那里没有其他东西的话。如果已经有一个名为"foo.bak"的文件,它将被移动到"foo.bak.0",依此类推。

move_aside()返回一个包含重命名文件路径的io::Result<PathBuf>

如果您想使用除"bak"之外的扩展名,可以调用move_aside_with_extension(PATH, EXTENSION)。要查看文件会被移动到何处而不实际移动它,请调用destination_path(PATH)destination_with_extension(PATH, EXTENSION)

bak会跳过备份文件序列中的空洞。例如,如果您调用bak::move_aside("foo"),并且"foo.bak.12"已存在,bak会将"foo"移动到"foo.bak.13"。

注意事项

  • 如果bak正在将文件从foo重命名为foo.bak的过程中,并且另一个进程或线程同时创建了一个名为foo.bak的文件,bak将静默地用foo覆盖新创建的foo.bak。这是因为在重命名过程中,bak使用了std::fs::rename,它会覆盖目标文件。

无运行时依赖