vc如何遍历全盘(包括子目录)
发布网友
发布时间:2024-10-22 01:55
我来回答
共1个回答
热心网友
时间:2024-10-28 09:17
int count_file(char *dir)
{
struct _finddata_t p;//定义一个结构体存放文件属性
int n,n1;
char *a;
n=strlen(dir);a=new char [n+100];n1=0;
strcpy(a,dir);strcat(a,"\\*.*");
if((n=_findfirst(a,&p))!=-1L)//调用文件查找函数
{
if(strcmp(p.name,".")&&strcmp(p.name,".."))
{
if((p.attrib&_A_SUBDIR))//文件是否为文件夹
{
int n2=strlen(dir)+strlen(p.name);
char *b=new char [n2+10];strcpy(b,dir);
strcat(b,"\\");strcat(b,p.name);
n1+=count_file(b);//递归调用 作用是返回文件夹内的文件总数
n1++;
delete(b);
}
}
while(_findnext(n,&p)==0)//寻找下一个文件
{
if(strcmp(p.name,".")&&strcmp(p.name,".."))
{
if((p.attrib&_A_SUBDIR))
{
int n2=strlen(dir)+strlen(p.name);
char *b=new char [n2+10];strcpy(b,dir);
strcat(b,"\\");strcat(b,p.name);
n1+=count_file(b);delete(b);n1++;
}
else n1++;
}
}
_findclose(n);//结束寻找
}
delete(a);return n1;//返回文件总个数
}