最近在学C++,需要编写一个程序,其中需要递归遍历文件夹。
以下是实现递归遍历文件夹的代码:
// recursion.cpp
#include <iostream>
#include <boost/filesystem.hpp>
using namespace std;
using namespace boost::filesystem;
//定义函数recursion,递归遍历全部文件夹
void recursion(path src_path)
{
directory_iterator end; //迭代器的终点
directory_iterator dir(src_path); //迭代器的起点
for (dir;dir!=end;dir++)
{
cout<<*dir<<endl; //将当前路径输出
if (is_directory(*dir)) recursion(*dir); //检查路径是否与目录对应(是文件夹则递归)
}
}
int main()
{
path src_path("F:\\A"); //给出初始路径
recursion(src_path); //调用函数
return 0;
}
(这段程序使用了boost库,如果之前没有配置,需要下载并编译)
以下是运行结果:
结果显示:
文件夹A中有C,D两个文件夹和myfile.txt文件;
文件夹C中有文件夹E和文件file.txt;
文件夹D中有图片pic.png。
有用赞我哦!