C++ 获取一个路径下的所有tif文件和shp文件 并将名字分别存到一个向量中
时间: 2024-09-19 09:01:12 浏览: 28
在C++中,你可以使用标准库如`<filesystem>`或者第三方库如`boost/filesystem`来获取指定路径下的所有`.tif`和`.shp`文件,并将它们的名称存储在一个向量中。这里我将提供一个基本的示例,假设已经包含了`boost/filesystem`库:
```cpp
#include <boost/filesystem.hpp>
#include <vector>
#include <string>
std::vector<std::string> getFiles(const std::string& directory) {
boost::filesystem::path path(directory);
std::vector<std::string> fileNames;
for (const auto& entry : boost::filesystem::directory_iterator(path)) {
if (entry.path().extension() == ".tif" || entry.path().extension() == ".shp") {
fileNames.push_back(entry.path().filename().string());
}
}
return fileNames;
}
// 使用方法
int main() {
std::string dirPath = "your_directory_path"; // 替换为你需要搜索的目录
std::vector<std::string> tifShpFiles = getFiles(dirPath);
for (const auto& fileName : tifShpFiles) {
std::cout << "Found file: " << fileName << std::endl;
}
return 0;
}
```
在这个例子中,我们首先创建了一个包含所有目录项的迭代器,然后检查每个项的扩展名,如果是".tif"或".shp",我们就将其文件名添加到向量中。
请注意,你需要包含`#include <boost/filesystem.hpp>`来使用这个库,并替换`"your_directory_path"`为实际的文件夹路径。
阅读全文