Function std::fs::canonicalize
1.5.0 · source · pub fn canonicalize<P: AsRef<Path>>(path: P) -> Result<PathBuf>
Expand description
返回路径的规范,绝对形式,所有中间组件均已规范化且符号链接已解析。
特定于平台的行为
该函数当前对应于 Unix 上的 realpath
函数以及 Windows 上的 CreateFile
和 GetFinalPathNameByHandle
函数。
注意,这个 将来可能会改变。
在 Windows 上,这会将路径转换为使用 扩展长度路径 语法,这允许您的程序使用更长的路径名,但是意味着您只能将反斜杠分隔的路径连接到该路径,并且它可能与其他应用程序不兼容 (如果传递给该应用程序,命令行,或写入另一个应用程序可以读取的文件)。
Errors
在以下情况下,此函数将返回错误,但不仅限于这些情况:
path
不存在。- path 中的非最终组件不是目录。
Examples
use std::fs;
fn main() -> std::io::Result<()> {
let path = fs::canonicalize("../a/../foo.txt")?;
Ok(())
}
Run