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!
rust cargo notify-rs
Commentami!