Linux C++ 查看目录下所有文件
简介
最近写程序总会用到频繁的读取目录下所有文件的操作,一直用C++写代码,为什么不封装成一个简单的类呢?然后打包成一个动态库或者静态库那么将会大大的方便代码的重用。于是动手写了下面的代码。能用给大家带来帮助将是我的荣幸,同时也希望大家能够尊重作者的劳动成果,不要随意转载。
主要函数
先简单的介绍一下用到的函数:
- lstat 函数:
#include<unistd.h>
#include<sys/type.h>
#include<sys/stat.h>
int lstat(const char* path, struct stat *buf);
本函数传入path路径,然后将路径的信息传递给struct stat结构的buf结构中。这里也用到了几个宏定义,S_ISDIR ,S_ISREG分别判断是否是路径,是否是文件。
- opendir
#include<sys/types.h>
#include<dirent.h>
DIR* opendir (const char * path );
打开一个目录并且建立以一个目录流,成功返回指向DIR结构的指针,用来读取目录项的数据。
- readdir
#include<sys/types.h>
#include<dirent.h>
struct dirent * readdir(DIR *dir)
返回一个指针,指向和目录流dir有关的资源
- closedir
#include<sys/types.h>
#include<dirent.h>
int cl