Класс Metadata
Класс Metadata содержит информацию о файле или директории,
полученную из операционной системы. Объект этого класса возвращается
методом metadata у типа Path и методом metadata
у DirEntry. Метаданные включают размер файла, тип файла,
права доступа, а также временные метки создания, изменения и доступа.
Синтаксис
use std::fs::Metadata;
use std::path::Path;
let metadata: Metadata = Path::new("file.txt").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 metadata = std::path::Path::new("test.txt").metadata().unwrap();
println!("{}", metadata.len());
}
Результат выполнения кода:
5
Пример
Давайте проверим, является ли объект файлом или директорией:
use std::fs::File;
fn main()
{
File::create("test.txt").unwrap();
let metadata = std::path::Path::new("test.txt").metadata().unwrap();
println!("is_file: {}", metadata.is_file());
println!("is_dir: {}", metadata.is_dir());
}
Результат выполнения кода:
is_file: true
is_dir: false
Пример
Давайте получим время последнего изменения файла:
use std::fs::File;
fn main()
{
File::create("test.txt").unwrap();
let metadata = std::path::Path::new("test.txt").metadata().unwrap();
let modified = metadata.modified().unwrap();
println!("{:?}", modified);
}
Результат выполнения кода:
SystemTime { tv_sec: 1700000000, tv_nsec: 0 }