c++遍历一个指定目录,将该目录下每个文件中的内容读取出来写入同一个指定的文本文件
时间: 2024-09-18 19:15:44 浏览: 49
在C++中,遍历目录并读取其内容通常通过`std::filesystem`库或者`Boost.Filesystem`库实现,它们提供了操作文件和目录的功能。以下是使用`std::filesystem`的一个示例,假设你已经包含了相关的头文件,并且已知目录路径和目标文件路径:
```cpp
#include <iostream>
#include <fstream>
#include <filesystem>
void readDirectoryContents(const std::string& directoryPath, const std::string& outputFile) {
std::ifstream output(outputFile, std::ios::app); // 打开输出文件追加模式
if (!output.is_open()) {
std::cerr << "无法打开输出文件!" << std::endl;
return;
}
for (const auto& entry : std::filesystem::directory_iterator(directoryPath)) { // 遍历目录
if (entry.is_regular_file()) { // 只处理普通文件,跳过目录和其他非文件
std::ifstream file(entry.path()); // 读取文件
if (!file.is_open()) {
std::cerr << "无法打开文件:" << entry.path() << std::endl;
continue;
}
std::string line;
while (std::getline(file, line)) { // 逐行读取文件内容
output << line << "\n"; // 写入输出文件
}
file.close(); // 关闭文件
}
}
output.close(); // 关闭输出文件
}
int main() {
std::string directoryPath = "your_directory_path";
std::string outputFile = "output.txt";
readDirectoryContents(directoryPath, outputFile);
std::cout << "目录内容已写入到 " << outputFile << "." << std::endl;
return 0;
}
```
这个程序会尝试打开指定的输出文件,然后对指定目录下的每个文件读取内容并添加到输出文件中。注意,你需要替换`your_directory_path`为你实际的目录路径。
阅读全文