C++遍历一个目录下的所有文件
时间: 2023-10-15 18:02:13 浏览: 194
可以使用C++的文件操作库和递归实现遍历一个目录下的所有文件,具体代码如下:
```cpp
#include <iostream>
#include <fstream>
#include <string>
#include <dirent.h> //需要包含的头文件
using namespace std;
void traverseDir(string path) {
DIR *dir;
struct dirent *ent;
if ((dir = opendir(path.c_str())) != NULL) {
while ((ent = readdir(dir)) != NULL) {
string filename(ent->d_name);
if (filename == "." || filename == "..") {
continue;
}
string fullpath = path + "/" + filename;
if (ent->d_type == DT_DIR) {
traverseDir(fullpath);
} else {
// 处理文件
cout << "文件:" << fullpath << endl;
}
}
closedir(dir);
} else {
perror("打开目录失败");
}
}
int main() {
traverseDir("/path/to/directory");
return 0;
}
```
在代码中,`traverseDir` 函数用于遍历目录,参数为需要遍历的目录路径。`opendir` 调用用于打开目录,`readdir` 调用用于遍历目录下的文件和子目录,`closedir` 调用用于关闭目录。对于每个文件,我们可以通过 `ent->d_type` 判断它是文件还是子目录,如果是子目录,则递归调用 `traverseDir` 函数,否则处理文件。
阅读全文