如何使用C++查找指定位置同类型的文件?几行代码教你轻松搞定( FindFirstFile()和FindNextFile())

当我们使用电脑手动查找某些指定位置同类型的文件时,其实非常容易,但是如果使用C++敲代码的形式,可能对于一些刚刚入门的新手,并不太友好,别慌!今天我将和大家一起学习,只需几行代码,就能完成上述功能!

话不多说,先上代码(每一行代码都进行了相应的注释,方便大家了解):

vectorvecPath;                           //定义了一个可变大小数组的序列容器
WIN32_FIND_DATA fileData;                         //可以通过FindFirstFile()函数根据当前的文件存放路径查找该文件来把待操作文件的相关属性读取到WIN32_FIND_DATA结构中去,可简单理解为存储FindFirstFile()函数的返回值
HANDLE file;                                      //定义HANDLE 类型的参数,此参数指向了函数FindFirstFile返回的查找句柄
file = FindFirstFile(L"users/*.jpg", &fileData);  //查找users目录下的第一个.jpg文件并将信息存放到fileData,返回句柄给file
if (file != INVALID_HANDLE_VALUE) {               //INVALID_HANDLE_VALUE表示无效句柄值
        vecPath.push_back(fileData.cFileName);    //将找到的相关.jpg文件的文件名存入到vecPath中
        while (FindNextFile(file, &fileData)) {   //判断当前目录下是否有下一个jpg文件,重复判断,直到条件转为False
	       vecPath.push_back(fileData.cFileName);//将找到的相关.jpg文件的文件名存入到vecPath中
        }
}

总结上述的两个重要函数: FindFirstFile()和FindNextFile()。

FindFirstFile()函数的功能为:查找指定目录的第一个文件或目录并返回它的句柄

FindNextFile()函数的功能为:FindNextFile是一个函数,可以用来遍历目录或文件时,判断当前目录下是否有下一个目录或文件。

上述代码的主要功能就是按照要求找到所有文件,并将对应的文件名存放到Vector中。

有什么其他我没有介绍清楚的地方欢迎大家留言一起探讨。

你可能感兴趣的:(C++,c++,开发语言,visual,studio)