Rust, a system programming language that places emphasis on speed, memory safety, and concurrency, offers powerful APIs to interact with a system's file metadata. In this article, we will explore how to use Rust’s file metadata APIs to extract file timestamps and permissions. This can be handy in various scenarios, such as syncing files, monitoring changes, or managing access control.

Setting Up Your Rust Environment

To get started, ensure that you have Rust installed on your system. You can download it from Rust’s official website. Once installed, you can verify the installation by running the following command in your terminal:

rustc --version

Ensure you have Cargo, Rust’s package manager, ready to set up a new project with:

cargo new file_metadata_example

Navigate to the newly created directory:

cd file_metadata_example

Accessing File Metadata

Rust provides the std::fs::metadata function to access a file’s metadata. Let’s start by retrieving the metadata for a specific file:


use std::fs;
use std::io::Result;

fn main() -> Result<()> {
    let metadata = fs::metadata("example.txt")?;
    println!("Metadata for 'example.txt': {:?}