在C++中用什么函数可以实现文件夹的遍历?格式如何?
望各位不吝赐教!
void check_dir(char* dirname)
{
DIR* p;
struct dirent* dirlist;
struct stat filestat;
char indir[1024];
p=opendir(dirname);
while((dirlist=readdir(p))!=NULL) {
sprintf(indir,"%s/%s",dirname,dirlist->d_name);
stat(indir,&filestat);
if(S_ISREG(filestat.st_mode)) {
printf("%s\n",indir);
}
else {
if(S_ISDIR(filestat.st_mode)&&dirlist->d_name[0]!=.) {
check_dir(indir);
}
}
}
}
这东西我以前贴过,linux下编译运行通过。
printf的地方是打印目录下所有文件的地方。
C没有现成函数,一般都需要写递归来实现,
函数的参数是需要遍历的文件夹
#include <dirent.h>
#include <sys/types.h>
#include <sys/stat.h>
需要这些头文件
如果是windows,可能有些不同
一般在LINUX下用ftw()函数吧,不过我觉得ftw()不好用,会破坏程序的结构。
findfirst,findnext