Метод metadata
Метод metadata класса File возвращает
структуру Metadata, содержащую информацию
о файле: его размер, права доступа, тип (файл или
директория) и время изменения. Метод не принимает
параметров и возвращает значение типа
io::Result<Metadata>. Если файл не существует
или доступ к нему запрещён, будет возвращена ошибка.
Синтаксис
file.metadata()
Пример
Давайте создадим файл и получим его метаданные, чтобы узнать размер файла:
use std::fs::File;
use std::io::Write;
fn main()
{
let mut file = File::create("test.txt").unwrap();
file.write_all(b"abcde").unwrap();
let meta = file.metadata().unwrap();
println!("{}", meta.len());
}
Результат выполнения кода:
5
Пример
Давайте проверим, является ли объект файлом или директорией:
use std::fs::File;
fn main()
{
let file = File::open("test.txt").unwrap();
let meta = file.metadata().unwrap();
println!("is_file: {}", meta.is_file());
println!("is_dir: {}", meta.is_dir());
}
Результат выполнения кода:
is_file: true
is_dir: false
Пример
Давайте получим права доступа к файлу и проверим, доступен ли он только для чтения:
use std::fs::File;
fn main()
{
let file = File::open("test.txt").unwrap();
let meta = file.metadata().unwrap();
let perm = meta.permissions();
println!("readonly: {}", perm.readonly());
}
Результат выполнения кода:
readonly: false
Смотрите также
-
класс
File,
который представляет открытый файл -
метод
open,
который открывает файл только для чтения -
метод
set_permissions,
который изменяет права доступа к файлу -
метод
set_len,
который изменяет размер файла