linux下使用c判断文件夹是否为空的小程序

/*自己写了一个 判断文件夹是否为空的小代码

打开文件夹的函数在man的时候要加 man 3 readdir,  */

#include
<stdio.h>
#include
<sys/types.h>
#include
<sys/stat.h>
#include
<unistd.h>
#include
<dirent.h>

int
isdirempty(char *dirname)
{
   
/* 打开要进行匹配的文件目录 */
   
DIR *dir = opendir(dirname);
   
struct dirent *ent;
   
if (dir == NULL)
   
{  
       
perror("seekkey.c-98-opendir");
       
return -1;
   
}  
   
while (1)
   
{  
       
ent = readdir (dir);
       
if (ent <= 0)
       
{  
           
break;
       
}  
       
if ((strcmp(".", ent->d_name)==0) || (strcmp("..",
ent->d_name)==0))
       
{  
           
continue;
       
}  
       
if ((ent->d_type == 4) || (ent->d_type == 8))
       
{  
           
return -1;
       
}  
   
}  
   
return 0;
}

int
main()
{
   
char *dirname = "bb";
   
int res = isdirempty(dirname);
   
if (res == 0)
   
{  
       
printf ("是空\n");
   
}  
   
else
   
{  
       
printf ("不是空\n");
   
}  
}

时间: 2024-08-07 17:02:45

linux下使用c判断文件夹是否为空的小程序的相关文章

C# 判断文件夹是否为空

//pbak是要检查是否为空的文件夹路径        if (Directory.GetDirectories(pbak).Length > 0 || Directory.GetFiles(pbak).Length > 0)        {            Response.Write("<script>alert('文件夹不为空!');</script>");        } C# 判断文件夹是否为空,布布扣,bubuko.com

linux下合并两个文件夹

Linux下目录的合并以及文件的覆盖案例: 有两个目录test和new,test目录下有目录和文件,new目录下有更改过的一些test下的目录和文件,以及一些新增的文件,现在对两个目录进行合并以及覆盖test下的旧文件 cp -frap new/* test/ 命令其实非常简单,解释下: -f  强制覆盖,不询问yes/no(-i的默认的,即默认为交互模式,询问是否覆盖) -r  递归复制,包含目录 -a  做一个备份,这里可以不用这个参数,我们可以先备份整个test目录 -p  保持新文件的属

Linux下搭建Java环境变量并实现第一个Java小程序

1.首先,我们打开虚拟机里面的Linux操作系统,然后点击下图菜单下的虚拟机选项: 在点击虚拟机下的设置菜单,如下图所示: 这里我已经添加进去我所需要的文件夹了,我放在本机E盘下的as文件夹里面到底放了什么呢? 上图这两个压缩文件,一个是android studio的压缩包,上年发布出来的,一直没用它,今天本来想在windows下安装这个软件,发现所需要的jdk是1.7,而我在windows下的jdk版本为1.6,所以打算在Linux操作系统下安装jdk1.7,并安装andoid studio工

2017-7-19-每日博客-关于Linux下的CentOS中文件夹基本操作命令.doc

CentOS中文件夹基本操作命令 文件(夹)查看类命令 ls--显示指定目录下内容 说明:ls 显示结果以不同的颜色来区分文件类别.蓝色代表目录,灰色代表普通文件,绿色代表可执行文件,红色代表压缩文件,浅蓝色代表链接文件. -a---显示所有内容,包括隐藏文件 说明:在Linux系统中,以"."开头的就是隐藏文件或隐藏目录. -l---以长格式(内容更详细)显示文件或目录的详细信息. 说明:ls -l命令可以简写成ll, 输出的信息共分为7组:文件类别和文件权限.链接数或子目录个数.文

Linux下实现对某个文件夹进行压缩

tar -zcvf /home/xahot.tar.gz /xahottar -zcvf 打包后生成的文件名全路径 要打包的目录 例子:把/xahot文件夹打包后生成一个/home/xahot.tar.gz的文件. zip 压缩方法: 压缩当前的文件夹 zip -r ./xahot.zip ./* -r表示递归zip [参数] [打包后的文件名] [打包的目录路径]解压 unzip xahot.zip 不解释linux zip命令的基本用法是: linux zip命令参数列表: -a 将文件转成

Linux 下使用 wc 统计文件夹下所有文件的代码行数(包括子目录)

wc 命令用于统计文件内容的行数.单词数.字母数. 但是如果想统计一个目录下所有文件的行数,wc 并没有提供递归统计. 不过,可以结合 find 命令,例如: $ wc -l `find -name *.c` 其中,-l 参数是统计行数,find -name *.c 是查找当前目录(包含子目录)下所有的C文件,` ` 是 shell 中的替换命令. 当然,实现方法有很多,我只是觉得这个比较简单易记. 测试效果如下: 最后,附一下 wc 的使用帮助(man wc) NAME wc - print

【Linux】Linux下配置apache - 安装文件夹具体解释

一,apache安装路径解释 默认安装路径   /var/apache2 # /etc/apache2/ # |-- apache2.conf # | `--  ports.conf # |-- mods-enabled # | |-- *.load # | `-- *.conf # |-- conf-enabled # | `-- *.conf # `-- sites-enabled # `-- *.conf 1)apache2.conf    :apacheserver的总配置文件.包括了各

Linux下rm -rf删除文件夹报错_ Device or resource busy

1.错误信息 rm: cannot remove `speechd-centos_6.2-prtl-pred-mf34/modules/t2p/py/third/g2p/.nfs00000000039b946b00000004': Device or resource busyrm: cannot remove `speechd-centos_6.2-prtl-pred-mf34/modules/t2p/py/log/.nfs00000000039c52ef00000005': Device o

linux下定期删除指定文件夹下2天前的文件

vi编脚本delete-log.sh内容如下:find /home/ctbackup/ -mtime +2 -name orabackup- -exec rm -rf {} \;find /home/ctbackup/ -mtime +2 -name OilDaQingAllinoneM- -exec rm -rf {} \; 设定执行脚本时间:每天3点执行脚本命令crontab -e0 3 * /home/delete-log.sh 原文地址:https://blog.51cto.com/su