c++学习:容器list实战(获取目录返回容器list)

新建一个dir.h,声明dir类

#ifndef DIR_H
#define DIR_H

#include <sys/types.h>
 #include <dirent.h>
#include <stdio.h>
#include <string.h>

#include <iostream>
#include <list>

class Dir
{
public:
    Dir();

    static std::list<std::string> entryList(const char *dirPath, const char *filter);
};

#endif // DIR_H

新建一个dir.cpp,定义dir类

#include "dir.h"


Dir::Dir()
{

}

std::list<std::string> Dir::entryList(const char *dirPath, const char *filter)
{
    std::list<std::string> list;

     DIR * fp = opendir(dirPath);
     if(fp == NULL)
     {
         perror("opendir error");
         return list;
     }

     while(1)
     {
        struct dirent * info = readdir(fp);
        if(info == NULL)
        {
            break;
        }

        if(info->d_type == DT_REG && info->d_name[0] != '.' &&
                strstr(info->d_name,filter)!=NULL)
        {
            //获取文件名
            char text[1024] = {0};

            if(dirPath[strlen(dirPath)-1] == '/')
            {
                sprintf(text,"%s%s",dirPath,info->d_name);
            }
            else{
                sprintf(text,"%s/%s",dirPath,info->d_name);
            }

            //存储到 链表容器中
            list.push_back(text);
        }
     }

     return list;
}

调用方法

//返回当前目录下以txt结尾的文件
std::list<string> list = Dir::entryList("./",".txt");

相关推荐

  1. c++学习容器list实战获取目录返回容器list

    2024-01-10 06:26:05       33 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-01-10 06:26:05       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-01-10 06:26:05       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-01-10 06:26:05       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-01-10 06:26:05       18 阅读

热门阅读

  1. 面试经典150题(78-81)

    2024-01-10 06:26:05       40 阅读
  2. 2401d,ddip1027如何支持sql

    2024-01-10 06:26:05       33 阅读
  3. macos m1如何卸载redis

    2024-01-10 06:26:05       34 阅读
  4. 记一次线上报错 GList AddChildAt NullReferenceException

    2024-01-10 06:26:05       42 阅读
  5. 异构微服务远程调用如何打jar包

    2024-01-10 06:26:05       38 阅读