C++でfindfirstとfindnextを使用してファイルを検索する方法は何ですか。

C++では、findfirstとfindnext関数を使用してファイルを検索することができます。

最初に、ヘッダファイルを含める必要があります。

その後、最初の一臀のファイルを検索するためにfindfirst関数を使用できます。以下がその構文です:

int findfirst(const char* dirname, struct _finddata_t* fileinfo);

dirnameは、検索するディレクトリ名であり、fileinfoはファイル情報を格納する構造体です。

例えば、現在のディレクトリ内にあるすべてのtxtファイルを検索するには、以下のコードを使用します。

#include <iostream>
#include <io.h>

int main() {
    const char* dirname = ".\\";
    struct _finddata_t fileinfo;
    int handle = _findfirst("*.txt", &fileinfo);
    if (handle != -1) {
        std::cout << "Found file: " << fileinfo.name << std::endl;
        while (_findnext(handle, &fileinfo) == 0) {
            std::cout << "Found file: " << fileinfo.name << std::endl;
        }
        _findclose(handle);
    }
    else {
        std::cout << "No file found." << std::endl;
    }
    return 0;
}

上記のコードでは、”.\”は現在のディレクトリを表し、”*.txt”は検索するファイル名のマッチングパターンを表します。たとえば、すべてのtxtファイルを指します。最初にマッチしたファイルを見つけた後、残りのマッチしたファイルを検索するためにwhileループを使用します。

_findfirstと_findnext関数が返すのは、ハンドルであるため、使用後には_findclose関数を呼び出してこのハンドルを閉じる必要があります。

C++でファイルを検索する際にfindfirstとfindnext関数を使用する方法についてご紹介しました。

bannerAds