deepr_utils/
fileutil.rs

1use core::fmt;
2use std::path::PathBuf;
3use std::time;
4
5#[derive(Default)]
6pub struct FileAge {
7    pub age_duration: time::Duration,
8    pub seconds: u64,
9    pub hours: u64,
10    pub minutes: u64,
11}
12
13impl fmt::Display for FileAge {
14    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
15        write!(f, "{}h {}m {}s", self.hours, self.minutes, self.seconds)
16    }
17}
18
19pub fn get_age(file: PathBuf) -> FileAge {
20    let metadata = std::fs::metadata(file).unwrap();
21    let t = metadata.modified().unwrap().elapsed().unwrap();
22    let age = t.as_secs();
23    let hours = age / 3600;
24    let minutes = age % 3600 / 60;
25    let seconds = age % 3600 % 60;
26    FileAge {
27        age_duration: t,
28        seconds,
29        hours,
30        minutes,
31    }
32}