在C++11中遍历文件夹下的所有文件,并获取文件名字
时间: 2024-09-24 20:26:30 浏览: 50
C++遍历文件夹下所有文件的多种方法
在C++11中,遍历目录下的所有文件并不直接内置这样的功能,但是可以借助一些第三方库如Boost/filesystem或者标准库中的`std::filesystem`。这里我将以`std::filesystem`为例来展示如何操作。
首先,你需要包含`#include <filesystem>`头文件,并确保你的系统支持这个库(C++17及以上版本),然后可以按照以下步骤进行:
```cpp
#include <iostream>
#include <filesystem>
namespace fs = std::filesystem;
void listFilesInDirectory(const fs::path& directoryPath) {
for (const auto& entry : fs::directory_iterator(directoryPath)) { // 使用directory_iterator遍历目录
if (entry.is_regular_file()) { // 检查是否是普通文件,不是目录或其他类型
std::cout << "File Name: " << entry.path().filename() << std::endl; // 获取文件名
}
}
}
int main() {
try {
fs::path dirPath = fs::current_path() / "your_directory_path"; // 替换为你要遍历的目录路径
listFilesInDirectory(dirPath);
} catch (const fs::filesystem_error& e) {
std::cerr << "Error listing files: " << e.what() << '\n';
}
return 0;
}
```
上述代码会在给定的目录下查找所有的普通文件,并打印出它们的名字。`fs::directory_iterator`会逐个迭代目录中的每个元素,`entry.path().filename()`用于提取文件名。
阅读全文