gpt4 book ai didi

file - 如何等到文件在 Rust 中创建?

转载 作者:行者123 更新时间:2023-11-29 07:51:19 25 4
gpt4 key购买 nike

该文件可能会或可能不会在我的程序启动之前创建,因此我需要确保在继续之前该文件存在。最惯用的方法是什么?

最佳答案

考虑到评论中的建议,我编写了以下代码:

fn wait_until_file_created(file_path: &PathBuf) -> Result<(), Box<Error>> {
let (tx, rx) = mpsc::channel();
let mut watcher = notify::raw_watcher(tx)?;
// Watcher can't be registered for file that don't exists.
// I use its parent directory instead, because I'm sure that it always exists
let file_dir = file_path.parent().unwrap();
watcher.watch(&file_dir, RecursiveMode::NonRecursive)?;
if !file_path.exists() {
loop {
match rx.recv_timeout(Duration::from_secs(2))? {
RawEvent { path: Some(p), op: Ok(op::CREATE), .. } =>
if p == file_path {
break
},
_ => continue,
}
}
}
watcher.unwatch(file_dir)?;
Ok(())
}

关于file - 如何等到文件在 Rust 中创建?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51274039/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com