Avatar ·

Wie man PathBuf in String in Rust umwandelt: Eine vollständige Anleitung

Hallo Kollegen! Ich habe kürzlich angefangen, Rust zu lernen, und bin auf ein Problem bei der Arbeit mit dem Dateisystem gestoßen. Ich muss den absoluten Pfad zu einer Datei ermitteln und ihn dann als normalen String für die weitere Verarbeitung speichern (z. B. für die Übergabe an JSON oder Logging). Hier ist mein Code: ```rust use std::path::PathBuf; use std::env; fn main() { let mut path = env::current_dir().unwrap(); path.push("config.toml"); // Ich möchte einen String erhalten, kann es aber nicht let path_str: String = path; // Fehler! println!("Pfad: {}", path_str); } ``` Der Compiler gibt einen Fehler aus: `expected String, found PathBuf`. Ich verstehe, dass `PathBuf` und `String` unterschiedliche Typen sind, aber wie konvertiert man sie? Ich habe die Methode `.to_str()` ausprobiert, aber sie gibt `Option<&str>` zurück, und ich brauche genau einen `String`. Könnt ihr mir bitte sagen, wie man `PathBuf` korrekt in `String` umwandelt? Gibt es irgendwelche Fallstricke? Muss ich vielleicht Fehler behandeln, wenn der Pfad ungültiges UTF-8 enthält? Vielen Dank im Voraus!