Path 从同一父目录创建多个路径的推荐方法是什么?

Path 从同一父目录创建多个路径的推荐方法是什么?,path,rust,Path,Rust,我有一个函数,它接收一个PathBuf,并在该PathBuf路径中创建一组文件和目录。例如,函数获取foo/bar,它将创建目录/文件,如foo/bar/bazinga和foo/bar/foo 例如,我可以使用fs::create_dir[_all](path:PathBuf)并为我要创建的每个文件夹/文件创建PathBuf实例。但是,创建这样一个实例意味着我必须克隆传入的PathBuf: pub fn generate(&self, mut path: PathBuf) -> R

我有一个函数,它接收一个
PathBuf
,并在该
PathBuf
路径中创建一组文件和目录。例如,函数获取
foo/bar
,它将创建目录/文件,如
foo/bar/bazinga
foo/bar/foo

例如,我可以使用
fs::create_dir[_all](path:PathBuf)
并为我要创建的每个文件夹/文件创建
PathBuf
实例。但是,创建这样一个实例意味着我必须克隆传入的
PathBuf

pub fn generate(&self, mut path: PathBuf) -> Result<()> {
    let dir_to_be_created_path = path.clone();
    dir_to_be_created_path.push("bazinga");
    Ok(())
}
pub-fn-generate(&self,mut-path:PathBuf)->结果{
让dir_to_被创建_path=path.clone();
直接创建路径推送(“bazinga”);
好(())
}
另一种选择是根据需要使用
&mut PathBuf
push()
pop()
,基本上只使用一个实例引用


公平地说,其中一种选择是实现这一目标的“更好”方式吗?或者还有其他更好的选择吗?

请查看。它将
.clone()
.push()
组合为一个步骤。

签出。它将
.clone()
.push()
组合为一个步骤。

啊,太棒了!!这看起来正是我需要的!关于克隆人和借用PathBuf的工作有什么评论吗?啊,太好了!!这看起来正是我需要的!对使用克隆还是使用借用的PathBuf有什么评论吗?您是否分析了代码,发现创建路径的行为是一个重要的瓶颈?我希望在磁盘上创建这些条目将大大超过为它们命名所花费的时间。另请参阅,谢谢!不,我没有,我只是提前问,因为我一直在不同的地方阅读,复制数据可能是一个问题。显然,这也取决于尺寸。这在这里可能真的不重要。感谢你的想法!您是否分析了代码,发现创建路径的行为是一个重要的瓶颈?我希望在磁盘上创建这些条目将大大超过为它们命名所花费的时间。另请参阅,谢谢!不,我没有,我只是提前问,因为我一直在不同的地方阅读,复制数据可能是一个问题。显然,这也取决于尺寸。这在这里可能真的不重要。感谢你的想法!