Controllare eventi sul filesystem in Rust con notify-rs

Mattepuffo's logo
Controllare eventi sul filesystem in Rust con notify-rs

Controllare eventi sul filesystem in Rust con notify-rs

notify-rs, o semplicemente notify, è una libreria cross-platform per Rust per controllare e notificare eventi sul filesystem.

In questo articolo vediamo come usarla facendo un esempio basico.

Per installarla aggiungiamo la dipendenza al cargo.toml:

[dependencies]
notify = "5.1.0"

Qui sotto un esempio di codice:

use notify::{RecommendedWatcher, RecursiveMode, Watcher, Config};
use std::path::Path;

fn main() {
    let path = Path::new("/home/fermat/Scrivania");
    println!("watching {:?}", path);

    if let Err(e) = watch(path) {
        println!("error: {:?}", e)
    }
}

fn watch<P: AsRef<Path>>(path: P) -> notify::Result<()> {
    let (tx, rx) = std::sync::mpsc::channel();
    let mut watcher = RecommendedWatcher::new(tx, Config::default())?;

    watcher.watch(path.as_ref(), RecursiveMode::Recursive)?;

    for res in rx {
        match res {
            Ok(event) => println!("changed: {:?}", event),
            Err(e) => println!("watch error: {:?}", e),
        }
    }

    Ok(())
}

Lanciatelo e andare a fare qualche operazione nella cartella che avete indicato (create o cancellate un file, ecc).

Enjoy!


Condividi

Commentami!