當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Rust canonicalize用法及代碼示例


本文簡要介紹rust語言中 Function std::fs::canonicalize 的用法。

用法

pub fn canonicalize<P: AsRef<Path>>(path: P) -> Result<PathBuf>

返回路徑的規範、絕對形式,其中所有中間組件均已標準化並已解析符號鏈接。

特定於平台的行為

該函數當前對應於 Unix 上的 realpath 函數以及 Windows 上的 CreateFileGetFinalPathNameByHandle 函數。請注意,這個may change in the future

在 Windows 上,這會將路徑轉換為使用 extended length path 語法,這允許您的程序使用更長的路徑名,但這意味著您隻能將 backslash-delimited 路徑連接到它,並且它可能與其他應用程序不兼容(如果傳遞給命令行上的應用程序,或寫入另一個應用程序可以讀取的文件)。

錯誤

此函數會在以下情況下返回錯誤,但不僅限於這些情況:

  • path 不存在。
  • 路徑中的非最終組件不是目錄。

例子

use std::fs;

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

相關用法


注:本文由純淨天空篩選整理自rust-lang.org大神的英文原創作品 Function std::fs::canonicalize。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。