Время правки файла в Rust
Время правки читают из тех же сведений. Метод на метаданных возвращает результат с системным временем. Его можно сравнить или вывести для журнала изменений.
Запишем файл и спросим момент правки:
use std::fs;
use std::io;
fn show_modified() -> io::Result<()> {
let info = fs::metadata("note.txt")?;
let moment = info.modified()?;
println!("{:?}", moment);
Ok(())
}
fn main() -> io::Result<()> {
fs::write("note.txt", "v1")?;
show_modified()?;
Ok(())
}
После второй записи момент обычно меняется:
use std::fs;
use std::io;
fn main() -> io::Result<()> {
fs::write("note.txt", "v1")?;
let first = fs::metadata("note.txt")?.modified()?;
fs::write("note.txt", "v2")?;
let second = fs::metadata("note.txt")?.modified()?;
println!("{:?} {:?}", first, second);
Ok(())
}
Дан путь:
let path = "data/log.txt";
Создайте файл, выведите время правки и перезапишите файл снова.
Дан путь:
let path = "missing.txt";
Скажите, на каком шаге появится сбой при запросе времени.
Вынесите чтение времени в функцию с исходом и выведите ответ.