C++如何获取指定目录下的所有视频文件路径?(递归添加子目录下的视频文件)
#include<vector>
#include<io.h>
void get_file_list_format(string main_path, vector<string> &file_list, string format)
{
intptr_t handle;//句柄
_finddata_t file_info;//文件信息
string search_path;//搜索路径
string ans_path;//结果路径
//筛选出直接下级文件中的符合者
if ((handle = _findfirst(search_path.assign(main_path).append("*.avi" + format).c_str(), &file_info)) != -1)
{
do
{
if (strcmp(file_info.name, ".") && strcmp(file_info.name, ".."))//有效文件
{
//可添加指定搜索文件名
file_list.push_back(ans_path.assign(main_path).append(file_info.name));
}
} while (!_findnext(handle, &file_info));
}
//继续筛选下级文件夹
if ((handle = _findfirst(search_path.assign(main_path).append("*.avi").c_str(), &file_info)) != -1)
{
do
{
if (file_info.attrib&_A_SUBDIR)//有子文件
{
if (strcmp(file_info.name, ".") && strcmp(file_info.name, ".."))//有效文件
{
//可添加指定搜索文件夹名
// if(!strcmp(file_info.name,"Startup")) file_list.push_back(ans_path.assign(main_path).append(file_info.name));//须隐去24行代码
get_file_list_format(search_path.assign(main_path).append(file_info.name).append("\\"), file_list, format);//搜索下一层
}
}
} while (!_findnext(handle, &file_info));
}
_findclose(handle);//关闭句柄
}