C++ 获取一个文件夹下的所有tif文件和shp文件,并分别将他们的名字存放到向量中
时间: 2024-09-18 18:04:10 浏览: 42
在C++中,获取文件夹下的特定类型的文件并存储其名称到向量中,通常需要使用`std::filesystem`库(C++17之后的标准库),用于处理文件系统操作。以下是一个简单的步骤描述:
1. 包含必要的头文件:
```cpp
#include <iostream>
#include <filesystem> // 使用C++17及以上版本
#include <vector>
```
2. 定义一个辅助函数,遍历目录并收集文件名:
```cpp
std::vector<std::string> getFilesInDirectory(const std::string& directory, const std::string& fileExtension) {
std::vector<std::string> filenames;
for (const auto& entry : std::filesystem::directory_iterator(directory)) {
if (entry.path().has_extension() && entry.path().extension() == fileExtension) {
filenames.push_back(entry.path().filename());
}
}
return filenames;
}
```
这个函数接收一个目录路径和一个文件扩展名,例如".tif"或".shp",然后返回一个包含符合条件文件名称的向量。
3. 调用函数获取.tif和.shp文件名:
```cpp
int main() {
std::string tifDirectory = "path/to/tif/folder";
std::string shpDirectory = "path/to/shp/folder";
std::vector<std::string> tifFiles = getFilesInDirectory(tifDirectory, ".tif");
std::vector<std::string> shpFiles = getFilesInDirectory(shpDirectory, ".shp");
// 打印或进一步处理文件名向量
for (const auto& filename : tifFiles) {
std::cout << "tif file: " << filename << std::endl;
}
for (const auto& filename : shpFiles) {
std::cout << "shp file: " << filename << std::endl;
}
return 0;
}
```
确保替换上述代码中的`path/to/tif/folder`和`path/to/shp/folder`为实际的文件夹路径。
阅读全文