#include <dirent.h>
#include <vector>
std::vector<std::string> GetFiles(const std::string& sdir = ".",
bool bsubdir = true) {
DIR* dp;
struct dirent* dirp;
std::vector<std::string> filenames;
if ((dp = opendir(sdir.c_str())) != NULL) {
while ((dirp = readdir(dp)) != NULL) {
if (strcmp(".", dirp->d_name) == 0 || strcmp("..", dirp->d_name) == 0)
continue;
if (dirp->d_type != DT_DIR)
filenames.push_back(sdir + "/" + dirp->d_name);
if (bsubdir && dirp->d_type == DT_DIR) {
std::vector<std::string> names = GetFiles(sdir + "/" + dirp->d_name);
filenames.insert(filenames.begin(), names.begin(), names.end());
}
}
}
closedir(dp);
return filenames;
}
ubuntu c++ 获取文件夹以及子文件夹下所有文件目录
发布时间 2023-05-05 10:56:49作者: 无左无右