解決済み: パスからファイル名を取得

最終更新: 09/11/2023

それでは、C++ を使用してパスからファイル名を取得するというトピックを詳しく見てみましょう。

イントロダクション
パスからファイル名を抽出することは、プログラミング、特にファイル処理を伴う操作において頻繁に行われる作業です。 この記事では、C++ を使用してこのタスクを実行する方法について詳しく説明します。 この記事を最後まで読むと、この問題の解決策を理解し、実装できるようになります。

ソリューション
この解決策には、C++ 標準ライブラリによって提供される組み込み関数を使用することが含まれます。 ここで注目するライブラリは、C++17 で導入されたファイルシステム ライブラリです。 ファイルやディレクトリを操作するためのさまざまな機能を提供します。

#include
std::string get_filename(std::string パス){
return std::filesystem::path(path).filename().string();
}

コードを理解する
get_filename 関数は文字列引数 (パス) を受け取り、ファイル名を返します。 この関数はファイルシステム ライブラリを利用します。 指定されたパス文字列を使用して filesystem::path オブジェクトを作成し、filename() メソッドを使用してファイル名を取得します。 次に、ファイル名は string() メソッドを使用して文字列に変換され、関数によって返されます。

  • 最初の行は、コードにファイルシステム ライブラリを含める場所です。
  • get_filename 関数は、文字列引数パスを使用して定義されます。
  • パス文字列を使用して filesystem::path オブジェクトを作成します。
  • ファイル名を取得するために、filesystem::path オブジェクトに対して filename メソッドが呼び出されます。
  • 次に、ファイル名は string() メソッドを使用して文字列に変換されます。

ファイルシステム ライブラリ

C++17 標準では、ファイルパス、ファイル、ディレクトリに対する操作の実行を目的とした一連のクラスと関数で構成されるファイルシステム ライブラリが導入されました。 そのクラスの XNUMX つである filesystem::path は、パスからファイル名を抽出するためにソリューションで使用されます。

このライブラリを使用すると、ファイルの読み取り、書き込み、名前変更、ディレクトリの作成と削除などの操作を実行できるため、C++ でのファイル システム操作が大幅に簡素化されます。

代替方法

ファイルシステム ライブラリが利用できない場合は、他の方法を利用してパスからファイル名を抽出できます。 別の方法の XNUMX つは、文字列ライブラリで利用可能な文字列操作関数を使用することです。 以下に例を示します。

#include
std::string get_filename_old(std::string パス){
std::size_t が見つかりました = path.find_last_of(“/\”);
パスを返します。substr(見つかった+1);
}

要約すると、パスからのファイル名の抽出は、C++ のファイルシステム ライブラリを使用して実現できます。 ファイル処理は多くのプログラミング タスクで頻繁に行われるため、ライブラリの機能をよく理解しておくことが重要です。

関連記事: