Метод metadata
Метод metadata возвращает информацию
о файле или директории, расположенных по
данному пути. Он возвращает результат типа
io::Result<Metadata>: при успехе -
структуру Metadata с информацией о
размере, времени создания, правах доступа
и типе файла, а при ошибке - значение
Err. Метод не принимает параметров
и следует символическим ссылкам, то есть
возвращает метаданные целевого файла, а не
самой ссылки.
Синтаксис
path.metadata()
Пример
Давайте получим метаданные файла
"Cargo.toml" и узнаем его размер:
use std::path::Path;
fn main()
{
let path = Path::new("Cargo.toml");
let res = path.metadata();
match res
{
Ok(meta) => println!("{}", meta.len()),
Err(e) => println!("Error: {}", e),
}
}
Результат выполнения кода:
123
Пример
Давайте проверим, является ли путь
"src" директорией:
use std::path::Path;
fn main()
{
let path = Path::new("src");
let res = path.metadata();
match res
{
Ok(meta) => println!("{}", meta.is_dir()),
Err(e) => println!("Error: {}", e),
}
}
Результат выполнения кода:
true
Пример
Давайте попробуем получить метаданные
несуществующего файла
"xyz.txt" и обработаем ошибку:
use std::path::Path;
fn main()
{
let path = Path::new("xyz.txt");
let res = path.metadata();
match res
{
Ok(meta) => println!("{}", meta.len()),
Err(e) => println!("Error: {}", e),
}
}
Результат выполнения кода:
Error: No such file or directory (os error 2)