C语言下遍历目录下所有文件

/*
enum
{
    DT_UNKNOWN = 0,         //未知类型
# define DT_UNKNOWN DT_UNKNOWN
    DT_FIFO = 1,            //管道
# define DT_FIFO DT_FIFO
    DT_CHR = 2,             //字符设备
# define DT_CHR DT_CHR
    DT_DIR = 4,             //目录
# define DT_DIR DT_DIR
    DT_BLK = 6,             //块设备
# define DT_BLK DT_BLK
    DT_REG = 8,             //常规文件
# define DT_REG DT_REG
    DT_LNK = 10,            //符号链接
# define DT_LNK DT_LNK
    DT_SOCK = 12,           //套接字
# define DT_SOCK DT_SOCK
    DT_WHT = 14             //链接
# define DT_WHT DT_WHT
};
*/

#define LOG_DIR  “/iot/log”
#define FILENAME_LOG   ".log"
void print_dir_files(void)
{
    DIR *dir_fd = NULL;
    struct dirent *dir_ptr = NULL;
    if ((dir_fd = opendir(LOG_DIR)) != NULL) {
        while ((dir_ptr = readdir(dir_fd)) != NULL) {
            //判断是文件
            if (dir_ptr->d_type == 8) {
                printf("this is a file[%d]: %s\r\n", strlen(dir_ptr->d_name),\
                                                    dir_ptr->d_name);
                #if 1
                //删除非法文件
                if (strlen(dir_ptr->d_name) != 12 \
                    || (strstr(dir_ptr->d_name, FILENAME_LOG) == NULL)) {
                    memset(namebuf, 0, sizeof(namebuf));
                    sprintf(namebuf, "%s/%s", MEIGE_LOG_DIR, dir_ptr->d_name);
                    printf"remove file[%d]: %s\n", strlen(dir_ptr->d_name), namebuf);
                    //remove(namebuf);
                }
                #endif
            }
        }
    }

    closedir(dir_fd);
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值