做usbcopy程序的时候,发现linux下除了删除命令 rm -fr 目录名 删除某个非空文件夹,没有直接可以删除非空目录的函数。
只好自己写个函数实现递归删除。(经有限次测试)
int deletedir(char *fp) { int n = 0; DIR *s=NULL; char sname[256]; struct dirent *p=NULL; if((s=opendir(fp))!=NULL) { while((p=readdir(s))!=NULL) { if(strcmp(p->d_name,"..") != 0 && strcmp(p->d_name,".") != 0) { strcpy(sname,"\0"); strcat(sname,fp); strcat(sname,"/"); strcat(sname,p->d_name); if(p->d_type==4) /*递归删除目录*/ deletedir(sname); rmdir(sname); if(p->d_type==8) remove(sname); } } rmdir(fp); } closedir(s); return 0; }