c++ 遍历文件夹
时间: 2023-07-29 17:07:03 浏览: 111
c++遍历文件夹
在 C++ 中,可以使用标准库中的 `std::filesystem` 来遍历文件夹。下面是一个示例代码,可以遍历指定文件夹下的所有文件和子文件夹:
```c++
#include <iostream>
#include <filesystem>
namespace fs = std::filesystem;
void traverse_directory(const std::string& path)
{
for (const auto& entry : fs::directory_iterator(path))
{
if (entry.is_directory())
{
std::cout << "Directory: " << entry.path() << '\n';
traverse_directory(entry.path());
}
else if (entry.is_regular_file())
{
std::cout << "File: " << entry.path() << '\n';
}
}
}
int main()
{
std::string path = "C:/my_folder"; // 指定要遍历的文件夹路径
traverse_directory(path);
return 0;
}
```
在上面的代码中,我们定义了一个 `traverse_directory` 函数,该函数接受一个参数 `path`,表示要遍历的文件夹路径。函数中使用 `fs::directory_iterator` 来遍历该文件夹下的所有文件和子文件夹。在遍历时,我们使用 `entry.is_directory()` 判断当前项是否是文件夹,如果是文件夹则递归调用 `traverse_directory` 函数进行遍历,否则判断当前项是否是文件(使用 `entry.is_regular_file()`),如果是文件则输出文件路径。
需要注意的是,使用 `std::filesystem` 需要在编译时链接库 `stdc++fs`,可以通过在编译选项中加入 `-lstdc++fs` 来链接该库。
阅读全文