Cómo convertir PathBuf a String en Rust: guía completa
¡Hola, colegas! Recientemente empecé a aprender Rust y me encontré con un problema al trabajar con el sistema de archivos. Necesito obtener la ruta absoluta a un archivo y luego guardarla como una cadena normal para su posterior procesamiento (por ejemplo, pasarla a JSON o logging).
Aquí está mi código:
```rust
use std::path::PathBuf;
use std::env;
fn main() {
let mut path = env::current_dir().unwrap();
path.push("config.toml");
// Quiero obtener una cadena, pero no puedo
let path_str: String = path; // ¡Error!
println!("Ruta: {}", path_str);
}
```
El compilador da un error: `expected String, found PathBuf`. Entiendo que `PathBuf` y `String` son tipos diferentes, pero ¿cómo convertirlos? Probé el método `.to_str()`, pero devuelve `Option<&str>`, y yo necesito específicamente una `String`.
Por favor, indíquenme cómo convertir correctamente `PathBuf` a `String`. ¿Hay algún inconveniente? ¿Quizás necesito manejar errores si la ruta contiene UTF-8 no válido? ¡Gracias de antemano!