Function std::fs::rename

1.0.0 · source ·
pub fn rename<P: AsRef<Path>, Q: AsRef<Path>>(from: P, to: Q) -> Result<()>
Expand description

将文件或目录重命名为新名称,如果 to 已经存在,则替换原始文件。

如果新名称在其他安装点上,则将无法使用。

特定于平台的行为

该函数当前对应于 Unix 上的 rename 函数和 Windows 上带有 MOVEFILE_REPLACE_EXISTING 标志的 MoveFileEx 函数。

因此,fromto 都存在时的行为是不同的。在 Unix 上,如果 from 是目录,则 to 也必须是 (empty) 目录。如果 from 不是目录,则 to 也必须不是目录。

相比之下,在 Windows 上,from 可以是任何东西,但是 to 一定不是目录。

注意,这个 将来可能会改变

Errors

在以下情况下,此函数将返回错误,但不仅限于这些情况:

  • from 不存在。
  • 用户没有查看内容的权限。
  • fromto 在不同的文件系统上。

Examples

use std::fs;

fn main() -> std::io::Result<()> {
    fs::rename("a.txt", "b.txt")?; // 将 a.txt 重命名为 b.txt
    Ok(())
}
Run