c++读取文件系统所有文件
时间: 2024-12-21 18:24:14 浏览: 3
在C++中,读取文件系统中的所有文件通常需要遍历目录树,这是一个典型的递归任务。这里我们可以使用标准库中的`<filesystem>`头文件,配合`std::filesystem::directory_iterator`。以下是一个简单的示例:
```cpp
#include <iostream>
#include <filesystem>
void listFilesInDirectory(const std::string& path) {
for (const auto& entry : std::filesystem::directory_iterator(path)) {
if (entry.is_regular_file()) {
std::cout << "File: " << entry.path() << std::endl;
} else if (entry.is_directory()) {
std::cout << "Directory: " << entry.path() << std::endl;
listFilesInDirectory(entry.path()); // 递归列出子目录内容
}
}
}
int main() {
try {
std::string directory_path = "path/to/directory"; // 替换成你想要遍历的实际路径
listFilesInDirectory(directory_path);
} catch (const std::filesystem::filesystem_error& e) {
std::cerr << "Error reading directory: " << e.what() << std::endl;
}
return 0;
}
```
这个程序会打印出指定目录及其包含的所有文件和子目录。注意,你需要包含`<filesystem>`头,并且此代码仅适用于C++17及以上版本。
阅读全文