C++实现将文件夹中所有文件按照文件名分别读取到三个容器中
时间: 2024-04-10 12:33:06 浏览: 75
C和C++实现文件的读取
要将文件夹中的所有文件按照文件名分别读取到三个容器中,您可以使用C++的标准库和文件系统库。以下是一种实现方式:
```cpp
#include <iostream>
#include <fstream>
#include <string>
#include <vector>
#include <filesystem>
void readFilesInFolder(const std::string& folderPath, std::vector<std::string>& container1, std::vector<std::string>& container2, std::vector<std::string>& container3) {
std::filesystem::directory_iterator endIter;
for (std::filesystem::directory_iterator iter(folderPath); iter != endIter; ++iter) {
if (std::filesystem::is_regular_file(iter->status())) {
std::string filename = iter->path().filename().string();
// 将文件名按照一定规则分别添加到三个容器中
if (filename.size() >= 9) {
container1.push_back(filename.substr(0, 9));
}
if (filename.size() >= 6) {
container2.push_back(filename.substr(0, 6));
}
if (filename.size() >= 3) {
container3.push_back(filename.substr(0, 3));
}
}
}
}
int main() {
std::string folderPath = "path/to/folder";
std::vector<std::string> container1, container2, container3;
readFilesInFolder(folderPath, container1, container2, container3);
// 打印容器中的内容
std::cout << "Container 1:" << std::endl;
for (const auto& item : container1) {
std::cout << item << std::endl;
}
std::cout << "Container 2:" << std::endl;
for (const auto& item : container2) {
std::cout << item << std::endl;
}
std::cout << "Container 3:" << std::endl;
for (const auto& item : container3) {
std::cout << item << std::endl;
}
return 0;
}
```
在上述代码中,`readFilesInFolder`函数接受文件夹路径、三个容器的引用作为输入参数。它使用`std::filesystem`库遍历文件夹中的所有文件,将文件名按照一定规则分别添加到三个容器中。
在主函数中,我们示范了如何使用`readFilesInFolder`函数来读取文件夹中的所有文件,并将它们按照文件名分别存放到三个容器中。然后,我们打印出每个容器中的内容。
请注意,上述代码假设您已经包含了必要的头文件,并将文件夹路径替换为实际的文件夹路径。
阅读全文