Avatar ·

如何将PathBuf转换为String:完整指南

大家好!我最近开始学习Rust,在处理文件系统时遇到了一个问题。我需要获取文件的绝对路径,然后将其保存为普通字符串以便进一步处理(例如,传递给JSON或日志记录)。 这是我的代码: ```rust use std::path::PathBuf; use std::env; fn main() { let mut path = env::current_dir().unwrap(); path.push("config.toml"); // 想要获取字符串,但无法做到 let path_str: String = path; // 错误! println!("路径: {}", path_str); } ``` 编译器报错:`expected String, found PathBuf`。我知道`PathBuf`和`String`是不同的类型,但如何转换它们呢?我尝试了`.to_str()`方法,但它返回`Option<&str>`,而我需要的是`String`。 请告诉我如何正确地将`PathBuf`转换为`String`?是否有任何陷阱?如果路径包含无效的UTF-8,是否需要处理错误?提前感谢!