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

Функция read_link

Функция read_link из модуля std::fs читает символическую ссылку и возвращает путь, на который эта ссылка указывает. Параметром функция принимает путь к символической ссылке, которую нужно прочитать. Возвращается результат типа io::Result<PathBuf>: при успехе - Ok с путём назначения, при ошибке - Err.

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

Синтаксис

std::fs::read_link(path)

Пример

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

use std::fs; use std::path::Path; fn main() { fs::write("target.txt", "hello").unwrap(); #[cfg(unix)] std::os::unix::fs::symlink("target.txt", "link.txt").unwrap(); #[cfg(windows)] std::os::windows::fs::symlink_file("target.txt", "link.txt").unwrap(); let res = fs::read_link("link.txt").unwrap(); println!("{}", res.display()); }

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

target.txt

Пример

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

use std::fs; fn main() { #[cfg(unix)] std::os::unix::fs::symlink("missing.txt", "dangling.txt").unwrap(); #[cfg(windows)] std::os::windows::fs::symlink_file("missing.txt", "dangling.txt").unwrap(); let res = fs::read_link("dangling.txt").unwrap(); println!("{}", res.display()); }

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

missing.txt

Пример

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

use std::fs; fn main() { fs::write("abcde.txt", "12345").unwrap(); match fs::read_link("abcde.txt") { Ok(path) => println!("{}", path.display()), Err(e) => println!("Error: {}", e), } }

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

Error: invalid argument (os error 22)

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

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