解決済み: ディレクトリ内のファイルを取得します

最終更新: 09/11/2023

はい、始めましょう。

ディレクトリ内のファイルを取得することは、プログラミングの世界ではよくある作業です。ディレクトリ内のファイル一覧を取得する操作は、データの読み込み、データのソート、あるいは単なる操作など、様々な場面で必要になります。C++のようなプログラミング言語でディレクトリを操作するのは非常に難しく、言語の標準ライブラリとその関数を十分に理解しておく必要があります。

ディレクトリ ファイル アクセスに対する C++ ソリューション

ディレクトリ内のファイルを取得するには、C++17 で導入された標準ファイルシステム ライブラリを使用します。 このライブラリは、ファイルとディレクトリを処理するのに役立ちます。 私たちは主に、このライブラリの下にある directory_iterator と path に焦点を当てます。これらは私たちの問題に最も関連しています。

次の関数を使用すると、ディレクトリ内のすべてのファイルを取得できます。

#include
#include

void get_files_in_dir(const std::string& ディレクトリ) {
for (const auto & エントリ : std::filesystem::directory_iterator(ディレクトリ)) {
std::cout <<entry.path()<<std::endl; } } [/コード]

ステップバイステップのコード説明

関数を分解して、それがどのように機能するかを理解しましょう。

  • この関数は、宣言 `void get_files_in_dir(const std::string& directory)` で始まります。 これは、const 文字列参照を引数として受け取り、何も返さない (void) `get_files_in_dir` という名前の関数を宣言します。 引数は、ファイルを取得するディレクトリを表します。
  • 次に、範囲ベースの for ループを使用して、ディレクトリ内の各エントリを調べます。 `std::filesystem::directory_iterator(directory)` は、指定されたディレクトリ内の各ファイルを処理できる反復オブジェクトを作成します。
  • ディレクトリ内の各ファイルへのパスは、`std::cout <<entry.path()<<std::endl;` で出力されます。'path()' はクラス 'directory_entry' および 'entry' の関数です。同じクラスのオブジェクトです。 「path()」は、「entry」の完全なパスを含む「path」タイプを返します。

のパワー C++で

データの保存と取得に関しては、ファイルの処理が非常に重要になります。 データは、後ですぐに取得できるような方法で保存する必要があります。 データを保存する最も一般的な場所の XNUMX つはファイルです。

C++ C++17 で導入されたライブラリは、ファイル システムとそのコンポーネント (パス、通常のファイル、ディレクトリなど) に対して操作を実行するための機能を提供します。 さらに、C++ でのファイル I/O 操作の移植性と使いやすさを提供します。 これにより、プログラマはファイルを操作する際に基盤となる OS について心配する必要がなくなります。

directory_iterator や path などのクラスを利用できるため、ディレクトリの操作や移動が容易になります。 ここで説明したコードは、このライブラリがいかに強力で開発者にとってフレンドリーであるかを簡単に示しています。

ディレクトリ ファイル アクセスの一般的なアプリケーション

ディレクトリ内のファイルを取得する一般的な使用例は、ディレクトリ構造に格納されているさまざまなデータ ファイルを並べ替え、読み込み、または操作する必要があるデータ集約型アプリケーションです。 ファイルのコピーや移動、タイプに基づいたファイルの並べ替えなどのタスクを自動化するために、または一般にディレクトリ内の複数のファイルにまたがるデータにアクセスするために使用されます。

ファイルとディレクトリへのアクセスをマスターする鍵は、ファイルシステム ライブラリで利用可能な関数を理解し、効果的に使用することにあることに注意してください。 特に大量のファイルを扱う場合、作業が大幅に軽減されます。

関連記事: