Function std::fs::canonicalize

1.5.0 · source ·
pub fn canonicalize<P: AsRef<Path>>(path: P) -> Result<PathBuf>
Expand description

返回路径的规范,绝对形式,所有中间组件均已规范化且符号链接已解析。

特定于平台的行为

该函数当前对应于 Unix 上的 realpath 函数以及 Windows 上的 CreateFileGetFinalPathNameByHandle 函数。 注意,这个 将来可能会改变

在 Windows 上,这会将路径转换为使用 扩展长度路径 语法,这允许您的程序使用更长的路径名,但是意味着您只能将反斜杠分隔的路径连接到该路径,并且它可能与其他应用程序不兼容 (如果传递给该应用程序,命令行,或写入另一个应用程序可以读取的文件)。

Errors

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

  • path 不存在。
  • path 中的非最终组件不是目录。

Examples

use std::fs;

fn main() -> std::io::Result<()> {
    let path = fs::canonicalize("../a/../foo.txt")?;
    Ok(())
}
Run