这是我的文件夹结构
src
├── main.rs
└── assembly_files
└── toyRISC.asm
为什么这是不够的或错误在哪里?我尝试了原始&str
:
let filename = "./assembly_files/toyRISC.asm";
let result = fs::read_to_string(path).expect("Please provide valid file name");
也尝试使用Path
和OsStr
,如下面的代码所示。
// main.rs
use std::{ffi::OsStr, fs, path::Path};
fn main() {
let filename = "assembly_files/toyRISC.asm";
let path = Path::new("./assembly_files/toyRISC.asm");
println!("{:?}", path);
let result = fs::read_to_string(path).expect("Please provide valid file name");
}
错误
thread 'main' panicked at 'Please provide valid file name: Os { code: 3, kind: NotFound, message: "The system cannot find the path specified."
}', srcmain.rs:6:43
当您创建一个文件的相对路径时,例如Path::new("./assembly_files/toyRISC.asm");
,该路径是相对于您调用可执行文件的文件夹的。注意,这并不一定是存储可执行文件的文件夹!
如果您只是在项目的根目录下运行cargo run
来运行它,那么您需要将路径更改为Path::new("./src/assembly_files/toyRISC.asm");