linux 判断一个目录是不是为空的

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亿个赞,不要多
第2个回答  2009-10-22
会不会是有点文件的原因本回答被提问者采纳

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网