C++ 获取目录下所有文件的绝对路径(包括子文件夹)
C++ 获取目录下所有文件的绝对路径(包括子文件夹)
本代码示例使用 C++ 获取指定目录下所有文件的绝对路径,包括其子文件夹内的所有文件。
#include <iostream>
#include <filesystem>
namespace fs = std::filesystem; // 命名空间别名
void TraverseDirectory(const fs::path& path) {
for (const auto& entry : fs::directory_iterator(path)) { // 获取目录下的所有文件和文件夹
if (entry.is_directory()) { // 如果是文件夹,则递归遍历
TraverseDirectory(entry.path());
} else { // 如果是文件,则输出绝对路径
std::cout << entry.path().string() << std::endl;
}
}
}
int main() {
fs::path path = 'C:/Users/'; // 设置要遍历的目录
TraverseDirectory(path); // 遍历目录
return 0;
}
代码说明:
-
头文件:
iostream:用于输入输出操作。filesystem:用于文件系统操作。
-
命名空间别名:
namespace fs = std::filesystem;将std::filesystem命名空间简化为fs,方便后续使用。
-
遍历目录函数:
TraverseDirectory(const fs::path& path):接收目录路径作为参数。fs::directory_iterator(path):创建目录迭代器,用于遍历目录中的所有条目(文件和文件夹)。entry.is_directory():判断当前条目是否为文件夹。- 如果是文件夹,则递归调用
TraverseDirectory函数继续遍历。 - 如果是文件,则输出文件路径
entry.path().string()。
- 如果是文件夹,则递归调用
-
主函数:
fs::path path = 'C:/Users/';:设置要遍历的目录路径。TraverseDirectory(path);:调用TraverseDirectory函数遍历目录。
注意:
- 请根据实际情况修改代码中的目录路径。
- 该代码仅演示了如何获取文件路径,您可以根据需要修改代码实现其他操作,例如读取文件内容、创建文件等。
代码使用示例:
假设您要遍历 C:/Users/ 目录下的所有文件,运行代码后,控制台将输出该目录下所有文件的绝对路径,包括子文件夹内的文件。
原文地址: https://www.cveoy.top/t/topic/n2zB 著作权归作者所有。请勿转载和采集!