C++ 代码 实现 获取 指定某个路径下所有文件夹名称
时间: 2023-10-27 10:04:36 浏览: 227
可以使用`<dirent.h>`库中的`opendir`和`readdir`函数实现。具体思路是:首先打开指定路径的目录,然后遍历目录中的所有文件和文件夹,判断每个文件和文件夹的类型,如果是文件夹,则将其名称添加到一个列表中。最后关闭目录,并返回文件夹名称列表。示例代码如下:
```c++
#include <iostream>
#include <string>
#include <vector>
#include <dirent.h>
using namespace std;
vector<string> get_folder_names(string path) {
vector<string> folder_names;
DIR *dir;
struct dirent *ent;
if ((dir = opendir(path.c_str())) != nullptr) {
while ((ent = readdir(dir)) != nullptr) {
if (ent->d_type == DT_DIR && strcmp(ent->d_name, ".") != 0 && strcmp(ent->d_name, "..") != 0) {
folder_names.push_back(ent->d_name);
}
}
closedir(dir);
} else {
cerr << "Error: could not open directory" << endl;
}
return folder_names;
}
int main() {
string path = "/path/to/folder";
vector<string> folder_names = get_folder_names(path);
for (const auto &folder_name : folder_names) {
cout << folder_name << endl;
}
return 0;
}
```
其中,`opendir`函数打开指定路径的目录,返回一个指向`DIR`类型的指针。`readdir`函数返回目录中的下一个文件或文件夹,如果到达目录末尾,则返回`nullptr`。`DT_DIR`表示目录项是一个文件夹。`strcmp`函数用于比较字符串,如果相等,则返回0。`closedir`函数关闭目录。
阅读全文