generated at
PathBuf



file pathを安全に扱うための型
内部はOsString
pathを便利に扱うためのmethodが生えている

rs
use std::path::PathBuf; fn main() { let mut path = PathBuf::from("/home/user"); path.push("documents"); path.push("file.txt"); println!("{:?}", path); // "/home/user/documents/file.txt" }
拡張子の取得
rs
fn main() { let path = PathBuf::from("example.tar.gz"); if let Some(ext) = path.extension() { println!("拡張子: {:?}", ext); } }
親ディレクトリの取得
rs
fn main() { let path = PathBuf::from("/home/user/documents/file.txt"); if let Some(parent) = path.parent() { println!("親ディレクトリ: {:?}", parent); } }
絶対pathに変換
rs
fn main() { let path = PathBuf::from("file.txt"); match path.canonicalize() { Ok(absolute_path) => println!("絶対パス: {:?}", absolute_path), Err(e) => eprintln!("エラー: {:?}", e), } }

PathBufと&Pathの関係は、
Stringと&strと同じ
雑認識
一般的には、&Pathを使うが、pathを変更するならPathBufを使う