c++中读取文件夹的pcap文件,并将pcap文件存储在vector中
时间: 2024-04-25 16:03:49 浏览: 11
以下是一个示例代码,可以在C++中读取文件夹中的PCAP文件,并将它们存储在vector中:
```c++
#include <iostream>
#include <vector>
#include <dirent.h>
#include <pcap.h>
using namespace std;
int main() {
string folder_path = "/path/to/pcap/folder"; // 文件夹路径
vector<string> file_names; // 存储文件名的vector
vector<pcap_t*> pcap_files; // 存储pcap文件的vector
DIR* dir;
struct dirent *ent;
if ((dir = opendir(folder_path.c_str())) != NULL) { // 打开文件夹
while ((ent = readdir(dir)) != NULL) { // 遍历文件夹中的文件
string file_name(ent->d_name);
if (file_name.length() > 5 && file_name.substr(file_name.length() - 5) == ".pcap") { // 判断是否为pcap文件
file_names.push_back(file_name); // 将pcap文件名存储到vector中
string file_path = folder_path + "/" + file_name;
char errbuf[PCAP_ERRBUF_SIZE];
pcap_t* pcap_file = pcap_open_offline(file_path.c_str(), errbuf); // 打开pcap文件
if (pcap_file != NULL) {
pcap_files.push_back(pcap_file); // 将pcap文件存储到vector中
}
}
}
closedir(dir); // 关闭文件夹
} else {
cout << "Error: unable to open directory." << endl;
return -1;
}
// 处理pcap文件...
// 关闭pcap文件
for (int i = 0; i < pcap_files.size(); i++) {
pcap_close(pcap_files[i]);
}
return 0;
}
```