溫馨提示×

C++怎么用findfirst和findnext查找文件

c++
小億
157
2024-01-19 10:04:21
欄目: 編程語言

在C++中,可以使用findfirst和findnext函數(shù)來查找文件。

首先,需要包含頭文件<dirent.h>。

然后,可以使用findfirst函數(shù)來查找第一個匹配的文件,語法如下:

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

其中,dirname是要搜索的目錄名,fileinfo是存放文件信息的結(jié)構(gòu)體。

例如,要在當(dāng)前目錄下搜索所有的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;
}

在上述代碼中,".\“代表當(dāng)前目錄,”*.txt"代表要搜索的文件名匹配模式,例如所有的txt文件。在找到第一個匹配的文件后,使用while循環(huán)來查找剩余的匹配文件。

需要注意的是,_findfirst和_findnext函數(shù)返回的是一個句柄(handle),在使用完后需要調(diào)用_findclose函數(shù)來關(guān)閉這個句柄。

以上就是使用findfirst和findnext函數(shù)在C++中查找文件的方法。

0