3个稳定版本
2.0.0 | 2019年9月5日 |
---|---|
1.0.1 | 2019年9月4日 |
#10 in #moved
13KB
290 行
bak
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
,它会覆盖目标文件。