首页 > 解决方案 > 'cargo run' 和启动 .exe 文件之间的区别

问题描述

我在 Rust 之旅中遇到了奇怪的问题。我正在尝试通过 rust 执行命令,例如。“mkdir abc”。我为此使用标准库:

use std::process::Command;
use whoami;

(...)

let mut command = Command::new("mkdir");
command.arg("abc");

command.current_dir(format!("/Users/{}/Desktop", whoami::username()));
let res = command.status();

match res {
    Ok(a) => println!("done! {}", a),
    Err(e) => println!("err {}", e)
}

只要我使用 cargo run 命令,此代码就可以正常工作。代码构建成功,但从 .exe 文件运行程序给我错误:

no file or directory (os error 2)

无论位置(current_dir)如何,都会出现相同的错误。

我想知道,这两种方法和执行我的代码有什么区别。这个错误的原因是什么。

PS。我使用 Windows 并尝试以管理员身份执行。

编辑:导致错误的特定命令的硬编码字符串

标签: rust

解决方案


推荐阅读