РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
923 of 1245 menu

Функция symlink_metadata

Функция symlink_metadata из модуля std::fs возвращает структуру Metadata с информацией о файле или символической ссылке. В отличие от функции metadata, она не следует по символической ссылке, а возвращает метаданные самой ссылки. Параметром функция принимает путь к файлу или ссылке, который может быть строкой, Path или PathBuf. Функция возвращает Result<Metadata>: при успехе - метаданные, при ошибке - значение io::Error.

Синтаксис

std::fs::symlink_metadata(path)

Пример

Давайте получим метаданные обычного файла и проверим, является ли он символической ссылкой:

use std::fs; fn main() { let res = fs::symlink_metadata("test.txt"); match res { Ok(meta) => { println!("is_symlink: {}", meta.file_type().is_symlink()); println!("len: {}", meta.len()); }, Err(e) => println!("Error: {}", e), } }

Результат выполнения кода:

is_symlink: false len: 5

Пример

Давайте создадим символическую ссылку и получим её метаданные, не разыменовывая саму ссылку:

use std::fs; fn main() { #[cfg(unix)] std::os::unix::fs::symlink("test.txt", "link.txt").unwrap(); #[cfg(windows)] std::os::windows::fs::symlink_file("test.txt", "link.txt").unwrap(); let res = fs::symlink_metadata("link.txt"); match res { Ok(meta) => { println!("is_symlink: {}", meta.file_type().is_symlink()); }, Err(e) => println!("Error: {}", e), } }

Результат выполнения кода:

is_symlink: true

Пример

Давайте обработаем ситуацию, когда путь не существует:

use std::fs; fn main() { let res = fs::symlink_metadata("missing.txt"); match res { Ok(meta) => println!("len: {}", meta.len()), Err(e) => println!("Error: {}", e), } }

Результат выполнения кода:

Error: No such file or directory (os error 2)

Смотрите также

  • функция metadata,
    которая возвращает метаданные файла, разыменовывая ссылки
  • функция read_link,
    которая возвращает путь, на который указывает символическая ссылка
  • функция symlink,
    которая создаёт символическую ссылку на файл
  • функция canonicalize,
    которая возвращает канонический абсолютный путь
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить