在 Tauri 设置中文件通知观察者不会被触发

问题描述 投票:0回答:0

我正在尝试将 notify 添加到基本的 Tauri 应用程序。通知观察者似乎在 Tauri 设置之外工作 (

watcher1
) 但不在 Tauri 设置内 (
watcher2
)。

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

fn main() -> Result<()> {
    let mut watcher1 = notify::recommended_watcher(move |res| match res {
        Ok(event) => {
            // does get printed
            println!("watcher1 event: {:?}", event);
        }
        Err(e) => println!("watch error: {:?}", e),
    })
    .expect("error creating file watcher");

    watcher1
        .watch(Path::new("."), RecursiveMode::Recursive)
        .expect("error watching folder");

    tauri::Builder::default()
        .setup(|_app| {
            let mut watcher2 = notify::recommended_watcher(move |res| match res {
                Ok(event) => {
                    // does not get printed
                    println!("watcher2 event: {:?}", event);
                }
                Err(e) => println!("watch error: {:?}", e),
            })
            .expect("error creating file watcher");

            watcher2
                .watch(Path::new("."), RecursiveMode::Recursive)
                .expect("error watching folder");

            Ok(())
        })
        .run(tauri::generate_context!())
        .expect("error while running tauri builder");

    Ok(())
}

您可以在此处获取完整代码:https://github.com/kasbah/tauri-notify。您应该能够克隆它并运行

yarn && yarn tauri dev
,然后进入
src-tauri
并更改一些文件,例如
touch random-file && rm random-file
.

  • 我可以删除
    watcher1
    ,但我仍然没有看到任何
    watcher2
    事件,所以它们似乎没有相互冲突。
  • 如果我添加
    println!("watcher2: {:?}", watcher2);
    它似乎创建好了。
rust inotify file-watcher tauri
© www.soinside.com 2019 - 2024. All rights reserved.