C++ linux查找目录下xml文件
时间: 2024-09-14 12:15:41 浏览: 36
linux下C++操纵读写XML的类库.zip
5星 · 资源好评率100%
在C++中,你可以使用标准库中的文件操作函数,以及POSIX标准的文件系统操作函数来查找Linux目录下的XML文件。以下是一个简单的例子,展示了如何使用C++标准库和POSIX文件系统库来查找指定目录下的所有XML文件:
```cpp
#include <iostream>
#include <vector>
#include <string>
#include <filesystem>
namespace fs = std::filesystem;
std::vector<fs::path> find_xml_files(const fs::path& directory) {
std::vector<fs::path> xml_files;
try {
if (fs::exists(directory) && fs::is_directory(directory)) {
for (const auto& entry : fs::recursive_directory_iterator(directory)) {
if (entry.is_regular_file() && entry.path().extension() == ".xml") {
xml_files.push_back(entry.path());
}
}
}
} catch (const fs::filesystem_error& e) {
std::cerr << "Filesystem error: " << e.what() << '\n';
} catch (const std::exception& e) {
std::cerr << "General error: " << e.what() << '\n';
}
return xml_files;
}
int main() {
std::string directory_path;
std::cout << "请输入目录路径: ";
std::cin >> directory_path;
fs::path dir = directory_path;
std::vector<fs::path> xml_files = find_xml_files(dir);
std::cout << "在目录 " << directory_path << " 下找到的XML文件有:" << std::endl;
for (const auto& file_path : xml_files) {
std::cout << file_path << std::endl;
}
return 0;
}
```
这段代码首先包含了必要的头文件,并定义了`find_xml_files`函数,该函数接收一个文件系统路径,然后遍历该目录及其子目录,查找所有扩展名为.xml的文件。找到的文件路径会被添加到一个`std::vector<fs::path>`中并返回。`main`函数则用于接收用户输入的目录路径,调用`find_xml_files`函数,并输出找到的XML文件列表。
阅读全文