
vc如何遍历全盘(包括子目录)
本人目前正在编写一个遍历全盘文件(包括子目录)的程序,并对文件进行一些操作,目前只能遍历C盘,请大虾帮忙...
本人目前正在编写一个遍历全盘文件(包括子目录)的程序,并对文件进行一些操作,目前只能遍历C盘,请大虾帮忙
展开
1个回答
2013-05-19
展开全部
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;//返回文件总个数
}
{
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;//返回文件总个数
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询