}
}
closedir(dir);//关闭指定目录
}
这里需要注意,由于p->d_name存放的是文件名,所以也可以通过像strstr(p->d_name,".jpg")等来判断,遍历指定类型的文件。
文件夹中:
运行结果:
二、Windows下遍历指定目录下所有文件
同样,直接看代码吧。
#include //所需头文件
#include
#include
using namespace std;
void getAllFileNames(const string& folder_path)
{
_finddata_t file;
long flag;
string filename = folder_path + "\\*.jpg";//遍历制定文件夹内的jpg文件
if ((flag = _findfirst(filename.c_str(), &file)) == -1)//目录内找不到文件
{
cout << "There is no such type file" << endl;
}
else
{
//通过前面的_findfirst找到第一个文件
string name = folder_path + "\\" + file.name;//file.name存放的是遍历得到的文件名
cout << name << endl;
//依次寻找以后的文件
while (_findnext(flag, &file) == 0)
{
string name = string(folder_path + "\\" + string(file.name));
cout << name << endl;
}
}
_findclose(flag);
}
int main()
{
getAllFileNames("test");//test是制定的目录
}
这里在Windows下寻找所有文件也会有“.”和".."文件,如果要遍历目录下的所有文件,则需要过滤这两个,过滤方法同Linux方法。
test原目录下文件:
运行结果: