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

时间:2019-01-30 19:50:59

标签: path rust

我有一个接收PathBuf的函数,它在该PathBuf的路径内创建了一堆文件和目录。例如,该函数获取foo/bar,它将创建目录/文件,例如foo/bar/bazingafoo/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(())
}

另一种选择是改为使用&mut PathBuf并根据需要使用push()pop(),实际上只使用一个实例引用。

可以公平地说,这些选择之一是“更好”的方式吗?还是有其他选择可以更好地做到这一点?

1 个答案:

答案 0 :(得分:1)

签出Path::join()。它将.clone().push()合并为一个步骤。