关于opendir,跪求达人。。
void do_all_dir(char *path)
{
DIR *dir;
char fullpath[1024],currfile[1024];
struct dirent *s_dir;
struct stat file_stat;
memset(fullpath,0,1024);
memset(currfile,0,1024);
strcpy(fullpath,path);
fullpath[1023]='\0';
dir=opendir(fullpath);//此处错误。。。
while ((s_dir=readdir(dir))!=NULL) {
if ((strcmp(s_dir-> d_name, ".")==0)||(strcmp(s_dir-> d_name, "..")==0)) continue;
sprintf(currfile, "%s/%s",fullpath,s_dir-> d_name);
int r= lstat(currfile,&file_stat);
if (S_ISDIR(file_stat.st_mode))
do_all_dir(currfile);
else
if(compstat(currfile)==1){
mail_uncompress(currfile,src,dest);
}
}
closedir(dir);
}
上面的函数用来遍历文件夹并做相应的操作。。
这个函数是放到一个循环里面的。
但是每次当第二次调用的时候,那个opendir就会出现错误。但是参数又是正确的。。
况且第一滴调用也是正确的。。
求达人指出错误在哪儿?