Spec-Zone.ru › Tokio

Функция canonicalize

pub async fn canonicalize(path: impl AsRef<Path>) -> Result<PathBuf>
Доступна только при включённой функции крейта fs.

Возвращает каноническую абсолютную форму пути, в которой нормализованы все промежуточные компоненты и разрешены символические ссылки.

Это асинхронная версия функции std::fs::canonicalize.

Поведение, зависящее от платформы

В настоящее время эта функция соответствует функции realpath в Unix и функциям CreateFile и GetFinalPathNameByHandle в Windows. Обратите внимание, что это может измениться в будущем.

В Windows эта функция преобразует путь в формат с синтаксисом путей увеличенной длины, что позволяет программе использовать более длинные имена путей, но означает, что к нему можно добавлять только пути, разделённые обратной косой чертой, и он может быть несовместим с другими приложениями (если передать его приложению в командной строке или записать в файл, который может прочитать другое приложение).

Ошибки

Эта функция вернёт ошибку в следующих ситуациях, но не только в них:

  • path не существует.
  • Промежуточный компонент пути не является каталогом.

Примеры

use tokio::fs;
use std::io;

#[tokio::main]
async fn main() -> io::Result<()> {
    let path = fs::canonicalize("../a/../foo.txt").await?;
    Ok(())
}

MIT License
Copyright © Tokio Contributors
https://docs.rs/tokio/1.53.1/tokio/fs/fn.canonicalize.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API