Work with files / Basic operations

use std::fs;
use std::path::Path;
extern crate chrono;
use chrono::offset::Utc;
use chrono::DateTime;

fn main() -> std::io::Result<()> {
    let file_path = "tmp/file.txt";
    let metadata = fs::metadata(file_path)?;
    let path = Path::new(file_path);

    //file size
    let file_size = metadata.len();

    //file modification date
    let date_changes = metadata.created()?;

    //file creation date
    let creation_date = metadata.modified()?;    

    //is readonly
    let is_readonly = metadata.permissions().readonly();

    //file extension
    let extension = path.extension().unwrap();

    //file name
    let file_name = path.file_name().unwrap();

    //file name without extension
    let file_name_only = path.file_stem().unwrap();

    //file directory
    let file_dir = path.parent().unwrap();   

    println!("file_size is {}", file_size);
    let datetime: DateTime<Utc> = date_changes.into();
    println!("date_changes is {}", datetime
        .format("%Y-%m-%d"));
    println!("creation_date is {:?}", creation_date);
    println!("is_readonly is {}", is_readonly);
    println!("extension is {:?}", extension);
    println!("file_name is {:?}", file_name);
    println!("file_name_only is {:?}", file_name_only);
    println!("file_dir is {:?}", file_dir);    

    Ok(())
}