c++和linux指定一个路径,遍历路径下所有文件和目录,并输出文件和目录的名称
时间: 2024-03-10 19:46:52 浏览: 63
您好!可以使用C++和Linux系统自带的dirent.h头文件实现遍历指定路径下所有文件和目录的功能。具体实现可以参考以下代码:
```c++
#include <iostream>
#include <dirent.h>
#include <string>
using namespace std;
void traverseDir(string path) {
DIR *dir;
struct dirent *entry;
if ((dir = opendir(path.c_str())) != NULL) {
while ((entry = readdir(dir)) != NULL) {
if (entry->d_type == DT_DIR) { // 判断是否为目录
if (strcmp(entry->d_name, ".") != 0 && strcmp(entry->d_name, "..") != 0) { // 排除掉"."和".."目录
cout << "dir: " << entry->d_name << endl;
traverseDir(path + "/" + entry->d_name); // 递归遍历子目录
}
} else {
cout << "file: " << entry->d_name << endl;
}
}
closedir(dir);
} else {
cout << "Cannot open directory: " << path << endl;
}
}
int main() {
string path = "/home/user/test"; // 指定路径
traverseDir(path);
return 0;
}
```
上述代码中,首先通过opendir函数打开指定路径的目录,然后通过readdir函数读取目录下的所有文件和目录,使用entry->d_type判断是文件还是目录,如果是目录则递归遍历子目录。最后使用closedir函数关闭目录。
阅读全文