【備忘録】C++ でファイルパスからファイル名を取得する

【備忘録】C++ でファイルパスからファイル名を取得する

link です。

C# ではファイルパスからファイル名を取得する System.IO.Path.GetFileName メソッドが存在します。

今回は C++ でも同じようにファイルパスからファイル名を取得する std::filesystem::path::filename メソッドを紹介します。

環境

  • Windows 10 以降
  • Visual Studio 2022

Visual Studio の設定

Visual Studio で作成直後の C++ プロジェクトでは std::filesystem::path::filename を include できません。

これは、 Visual Studio の C++ プロジェクトはデフォルトでは C++14 を利用するようになっているためです。

std::filesystem::path::filenameC++17 以降でなければ利用できないため、プロジェクトの設定を変更する必要があります。

まず、プロジェクトのプロパティを開きます。

プロパティ

プロパティ

「C/C++ → 言語」の「C++ 言語標準」を ISO C++17 標準 に設定して「OK」ボタンを押して設定は完了です。

C/C++ 設定

C/C++ 設定

ファイル名を取得してみる

試しに C:\\test\\test.txt というパスから test.txt を取得してみます。

ファイル名取得
std::filesystem::path filepath = "C:\\test\\test.txt";
std::cout << path.filename() << std::endl;

これでコンソール上に test.txt が表示されると思います。

参考サイト

まとめ

今回は C++ でファイルパスからファイル名を取得する std::filesystem::path::filename メソッドを紹介しました。

それではまた、別の記事でお会いしましょう。

linkohta