#include <iostream>
#include <io.h>
#include <fstream>
#include <string>
using namespace std;
int count=0;//用来表示缩进
void findFile(string dir)
{
long filehandle;
_finddata_t fileInfo;
string dirPattern=dir+"\\*.*";//给定目录下所有形式的文件名
filehandle=_findfirst(dirPattern.c_str(),&fileInfo);//_findfirst函数的第一个参数必须
_findnext(filehandle,&fileInfo);//去除.和..,一般列出来的文件中,头两个是.和..
while(!_findnext(filehandle,&fileInfo))
{
if(fileInfo.attrib!=_A_SUBDIR)//如果不是目录
{
for(int m=0;m<count;m++) cout<<" ";
cout<<fileInfo.name<<endl;
}
else if(fileInfo.attrib==_A_SUBDIR)//如果是目录
{
count=count+4;
for(int i=0;i<count;i++) cout<<" ";
cout<<"subdir=========="<<fileInfo.name<<endl;
string tempdir("\\");//用string是因为字符串连接方便,c的要用函数strcat,太麻烦
string temp(fileInfo.name);
tempdir+=temp;
string dir1(dir);
dir1+=tempdir;
//dir1+="\\*.*";
findFile(dir1);
for(i=0;i<count;i++) cout<<" ";
cout<<"subdir=========="<<fileInfo.name<<endl;
count=count-4;
//cout<<"dir1 is :"<<dir1<<endl;
}
}
_findclose(filehandle);
}
int main(int argc, char **argv)
{
//============
string dir(".");//从当前目录开始
findFile(dir);
return 0;
}
递归列出目录下的所有文件
最新推荐文章于 2023-07-12 16:46:44 发布