作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试打开一个文件,如果不存在,请创建它。但是由于某种原因,我收到一条消息ErrorKind::Other
的"Not a directory"
错误。这是我得到的完整错误:
thread 'main' panicked at 'Unknown error when opening file: Os { code: 20, kind: Other, message: "Not a directory" }', src/main.rs:53:17
let mut filepath = std::env::current_exe()?;
filepath.push("days");
filepath.set_extension("toml");
let mut file = match File::open(filepath.clone()) {
Ok(f) => f,
Err(e) => match e.kind() {
ErrorKind::NotFound => {
{
let mut create_file = File::create(filepath.clone());
create_file.write_all(...); // Dummy data
}
File::open(filepath.clone())?
},
_ => {
panic!("Unknow error when opening file: {:?}", e); // This is line 53
}
}
};
"/mnt/c/Projects/Other/random/hmdict/target/debug/hmdict/days.toml"
,这是正确的。
nightly-x86_64-unknown-linux-gnu
和rustc版本
1.46.0-nightly
最佳答案
问题是push创建了单独的路径。如果您的可执行位置是<what_ever>/hmdict
,那么您的代码将创建一个路径<whatever>/hmdict/days.toml
。显然,此路径不存在,因为hmdict
是可执行文件而不是目录。
关于file-io - 打开文件返回ErrorKind::Other 'Error: Os, code: 20, message: “Not a directory”',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62303615/
std::io::ErrorKind 有一个变体 __Noneexhaustive。如果这个变体不存在,我不知道会出现什么问题。 这个变体的目的是什么? 最佳答案 它旨在允许 ErrorKind 枚举
添加到 nom 的简单错误处理程序 第一个编译没有错误,第二个出错 use nom::*; use std::str; // This works named!( field, map
我是一名优秀的程序员,十分优秀!