⚙️

【Rust】String型のファイルパスからString型のファイル名を取得する方法

2022/03/15に公開

個人で簡単なCLIツールを作っているときに
引っかかったので記事にしてみました。

やり方としては
String型のファイルからいったんPathBufを作成し、
PathBufでファイル名を取ってきて
それをそのままString型に変換します。

use std::path::PathBuf

fn get_file_name(file_path: &String) -> String {
    let path_buf = PathBuf::from(file_path);
    let file_name = path_buf.file_name().unwrap()
        .to_string_lossy()
	.into_owned();
    file_name
}

to_string_lossyまでだとCow列挙型が返ってきてしまい
どうしようかと悩んでいたのですが、
into_ownedでString型にできました……。

Discussion