linux 如何在Rust中递归地监视文件更改?

50pmv0ei  于 2023-08-03  发布在  Linux
关注(0)|答案(1)|浏览(165)

如何在Rust中观察文件/目录的变化,以及如何以非阻塞的方式集成它?规范示例(如https://docs.rs/notify/4.0.15/notify/提供的示例)显示了如何监视文件,但它将阻止main函数的其余执行。(我在追求这个https://doc.rust-lang.org/std/sync/mpsc/fn.channel.html

wtzytmuj

wtzytmuj1#

notify crate的示例代码显示了如何执行您想要的操作。它使用RecursiveMode::Recursive指定监视所提供路径中的所有文件和子目录。

use notify::{Watcher, RecommendedWatcher, RecursiveMode, Result};

fn main() -> Result<()> {
    // Automatically select the best implementation for your platform.
    let mut watcher = notify::recommended_watcher(|res| {
        match res {
           Ok(event) => println!("event: {:?}", event),
           Err(e) => println!("watch error: {:?}", e),
        }
    })?;

    // Add a path to be watched. All files and directories at that path and
    // below will be monitored for changes.
    watcher.watch(Path::new("."), RecursiveMode::Recursive)?;

    Ok(())
}

字符串

相关问题