int main(){
DIR *db ;
struct dirent *p;
db=opendir( "cc");/* cc 是个刚建的目录*/
if(!db)return -1;
if(p=readdir(db))
printf( "非空\n ");
else
printf( "空\n ");
}
判断的结果是非空
是不是因为里面有“.”“..”,所以说“cc”是非空的呢,还是说这个代码有错呢
我是用脚本实现的
如果同时也要检查隐藏文件 ls -l -A 即可,num后面是引用执行符
read -p "输入要检查目录的完整路径" addr
num= `ls $addr | wc -l` %> /dev/null
if [ $num = 0 ]
then echo "目录为空"
else echo "目录不为空"
fi
温馨提示:答案为网友推荐,仅供参考
第1个回答 2019-08-09
while(dq = readdir(dir)){
if(strcmp(dq->d_name,".")==0||strcmp(dq->d_name,"..")==0)
continue;//这里可以忽略"."和".."
else if(dq->d_type == DT_DIR){
printf("目录:%s\n",dq->d_name);
char buf[256]={};
sprintf(buf,"%s/%s",path,dq->d_name);
rmdir(buf);
del_dir(buf);
}
else
printf("文件:%s\n",dq->d_name);
}这里是遍历整个目录的代码
给我13亿个赞,不要多
if(strcmp(dq->d_name,".")==0||strcmp(dq->d_name,"..")==0)
continue;//这里可以忽略"."和".."
else if(dq->d_type == DT_DIR){
printf("目录:%s\n",dq->d_name);
char buf[256]={};
sprintf(buf,"%s/%s",path,dq->d_name);
rmdir(buf);
del_dir(buf);
}
else
printf("文件:%s\n",dq->d_name);
}这里是遍历整个目录的代码
给我13亿个赞,不要多
第2个回答 2009-10-22
会不会是有点文件的原因本回答被提问者采纳