c++学习:容器list实战(获取目录返回容器list)
2024-01-09 06:58:37
新建一个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");
文章来源:https://blog.csdn.net/weixin_59669309/article/details/135469563
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!