Io 在文件夹中创建文件

Io 在文件夹中创建文件,io,rust,Io,Rust,如何在Rust中的特定文件夹中创建文件 我尝试了以下方法: let f = File::create(Path::new(format!("{}{}","/files/",filename).as_str())); let f = File::create(format!("{}{}","/files/",filename)); 两者都会导致: 系统找不到指定的路径。(操作系统错误3) 我已成功地在与可执行文件相同的目录中创建了该文件,其中包括: let f = File::create(

如何在Rust中的特定文件夹中创建文件

我尝试了以下方法:

let f = File::create(Path::new(format!("{}{}","/files/",filename).as_str()));

let f = File::create(format!("{}{}","/files/",filename));
两者都会导致:

系统找不到指定的路径。(操作系统错误3)
我已成功地在与可执行文件相同的目录中创建了该文件,其中包括:

let f = File::create(format!("{}",filename));
那么,如何在特定目录中创建文件呢

ls
在基本文件夹上:

PS C:\trust\svd2rust\target\debug>ls
目录:C:\trust\svd2rust\target\debug
模式LastWriteTime长度名称
----                -------------         ------ ----
d-----2017-01-24 12:13.指纹
d-----2017-01-24 12:13建造
d-----2017-01-26 10:06部门
d-----2017-01-24 12:13示例
d-----2017-01-26 07:18文件
d-----2017-01-24 12:13增量
d-----2017-01-24 12:13本地人
-a----2017-01-24 12:13 0.货物锁
-a----2017-01-26 10:06 1079240 libsvd2rust.rlib
-a----2017-01-2421:0827608 log.rs
-a----2017-01-2413:5527372 log2.rs
-a----2016-08-23 15:07 565888 STM32F401x.svd
-a----2016-08-23 15:07 912360 STM32F401xE.svd
-a----2016-08-23 15:07 1907985 STM32F40x.svd
-a----2017-01-26 10:06 1176561 svd2rust.exe
使用“files/”而不是“/files/”解决了问题

似乎“/files/”引用了C:\files的绝对路径,而“files/”引用了可执行文件的相对路径


因此,当使用“/files/”时,它不起作用,因为没有文件夹C:\files。

是否存在
/files
目录?是的,它已经创建了。您可以发布一个完整的示例来说明问题吗?注意:您应该能够使用
Path::new(/files/”)。join(Path::new(&filename))
作为参数,无需调用
格式
宏或在结尾调用
as_str()
(您应避免使用字符串,因为字符串验证其内容是否为有效的Unicode,并注意所有文件都是有效的)。@MatthieuM<代码>路径::新建(“/files/”)。连接(&filename)应该足够了(
AsRef