C++遍历文件夹下所有文件和指定类型的文件
#include<iostream>
#include<io.h>
#include<vector>
#include<string>
int get_files(std::string fileFolderPath,std::string fileExtension,std::vector<std::string>&file)
{
std::string fileFolder = fileFolderPath + "\\*" + fileExtension;
std::string fileName;
struct _finddata_t fileInfo;
long long findResult = _findfirst(fileFolder.c_str(), &fileInfo);
if (findResult == -1)
{
_findclose(findResult);
return 0;
}
bool flag = 0;
do
{
fileName = fileFolderPath + "\\" + fileInfo.name;
if (fileInfo.attrib == _A_ARCH)
{
file.push_back(fileName);
}
} while (_findnext(findResult, &fileInfo) == 0);
_findclose(findResult);
}
int main()
{
//查询文件夹
std::string fileFolderPath = "D:\\BaiduNetdiskDownload\\0529GF3_ZY3\\GF3_MDJ_SS_012834_E121.7_N40.2_20190117_L2_HHHV_L20004028171";
//所有tiff数据
std::cout << "输出当前目录下的所有tiff格式的文件" << std::endl;
std::vector<std::string> tiff_files;
std::string fileExtension = ".tiff";
get_files(fileFolderPath, fileExtension, tiff_files);
for (int i = 0; i < tiff_files.size(); i++)
{
std::cout << tiff_files[i] << std::endl;
}
//所有xml数据
std::cout << "\n输出当前目录下的所有xml格式的文件" << std::endl;
std::vector<std::string> xml_files;
std::string fileExtension_xml = ".xml";
get_files(fileFolderPath, fileExtension_xml, xml_files);
for (int i = 0; i < xml_files.size(); i++)
{
std::cout << xml_files[i] << std::endl;
}
//输出所有文件
std::cout << "\n输出当前目录下的所有文件" << std::endl;
std::vector<std::string> all_files;
std::string fileExtension_all = "";
get_files(fileFolderPath, fileExtension_all, all_files);
for (int i = 0; i < all_files.size(); i++)
{
std::cout << all_files[i] << std::endl;
}
return 0;
}
查找结果