Rust 命令因进程中断而无法访问已在使用的文件

Rust 命令因进程中断而无法访问已在使用的文件,rust,process,command,std,Rust,Process,Command,Std,我正试图通过Comand::new在我的Rust代码中生成CLI。CLI文件正在从二进制文件提取到exe文件,然后使用Command::new运行。但是它给出了错误:Os{code:32,kind:Other,消息:“该进程无法访问该文件,因为它正被另一个进程使用。”}'错误 let taskmgr_pid = get_pid_by_name("Taskmgr.exe"); let process_hide = asset::Asset::get("cli.exe&

我正试图通过
Comand::new
在我的Rust代码中生成CLI。CLI文件正在从二进制文件提取到exe文件,然后使用
Command::new
运行。但是它给出了错误:Os{code:32,kind:Other,消息:“该进程无法访问该文件,因为它正被另一个进程使用。”}'错误

let taskmgr_pid = get_pid_by_name("Taskmgr.exe");
let process_hide = asset::Asset::get("cli.exe").unwrap();

let file_path = "C:\\filepathhere\\cli.exe";

let mut file = File::create(file_path.to_string()).expect("Couldn't create file");
file.write_all(&process_hide);

let res = Command::new(file_path)
    .arg(taskmgr_pid.to_string())
    .output()
    .expect("ERROR");

println!("PID: {}", taskmgr_pid);
println!("{:?}", res);

这是因为您在执行命令之前没有关闭
文件
。解决这个问题最简单的方法,就是简单地提前解决

让mut file=file::create(file_path).expect(“无法创建文件”);
file.write_all(&process_hide).expect(“无法写入”);
放下(文件);
let res=命令::新建(文件路径)
.arg(taskmgr_pid.to_string())
.output()
.预期(“错误”);