Watch A Directory For File Changes In Rust

Note

See also: A Simple Debouncer For Rust's notify File Watcher which uses _full instead of _mini which I've found to work better in some cases where you need to ignore access to files

I'm using [TODO: Code shorthand span ] in my Rust apps to watch directories for file changes.

A basic sample looks like this:

use notify_debouncer_mini::{new_debouncer, notify::*};
use std::path::PathBuf;
use std::time::Duration;

fn main() {
    let _ = watch_files();
}


fn watch_files() -> Result<()> {
    let watch_dir = PathBuf::from(".");
    let (tx, rx) = std::sync::mpsc::channel();
    let mut debouncer = new_debouncer(Duration::from_millis(100), tx)?;
    debouncer
        .watcher()
        .watch(&watch_dir, RecursiveMode::Recursive)?;
    for result in rx {
        match result {
            Ok(events) => events.iter().for_each(|event| {
                dbg!(&event.path);
            }),
            Err(_) => {}
        }
    }
    Ok(())
}

Notes

~ fin ~

References