You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Rust读取嵌套文件夹内的文件报路径不存在错误如何解决?

问题根因

  1. 变量名不匹配(仅针对你第一次写的代码)
    你第一次的代码里定义的路径变量名为filename,但调用fs::read_to_string时传入的是未定义的path变量,这会直接导致编译不通过。
  2. 工作目录匹配错误
    即便你修正了变量名,运行时依然会报找不到路径的错误,核心原因是:使用cargo run启动程序时,默认工作目录是项目根目录(Cargo.toml所在的文件夹),而非src源码目录。
    你的assembly_files文件夹存放在src目录下,代码里写的./assembly_files/toyRISC.asm是相对于工作目录的路径,根目录下不存在该文件夹,所以触发NotFound错误。

修复方案

你可以任选一种方案解决:

  • 方案一:修改路径为相对于项目根目录的正确路径
    将路径改为./src/assembly_files/toyRISC.asm即可,修正后的代码参考:
use std::{fs, path::Path};
fn main() {
    let path = Path::new("./src/assembly_files/toyRISC.asm");
    println!("路径为:{:?}", path);
    let result = fs::read_to_string(path).expect("请输入有效的文件名");
}
  • 方案二:调整文件存放位置
    将assembly_files文件夹从src目录移动到项目根目录,和src文件夹同级,你的原有代码不需要修改即可正常运行。

调试技巧

如果后续再遇到类似路径问题,可以在代码中加入以下逻辑打印当前工作目录,快速确认路径是否匹配:

use std::env;
fn main() {
    println!("当前工作目录为:{:?}", env::current_dir().unwrap());
}

内容的提问来源于stack exchange,提问作者sherlock sampath

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 16:06:00