在C++中,可以使用findfirst和findnext函數來查找文件。
首先,需要包含頭文件<dirent.h>。
然后,可以使用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函數返回的是一個句柄(handle),在使用完后需要調用_findclose函數來關閉這個句柄。
以上就是使用findfirst和findnext函數在C++中查找文件的方法。