在C++中,可以使用glob()
函數來進行文件過濾。glob()
函數定義在<glob.h>
頭文件中,用于匹配指定模式的文件路徑。
以下是一個簡單的示例代碼,使用glob()
函數來過濾文件路徑:
#include <iostream>
#include <glob.h>
#include <vector>
int main() {
std::vector<std::string> files;
glob_t glob_result;
// 匹配所有文件名符合 "*.txt" 格式的文件
if(glob("*.txt", 0, NULL, &glob_result) == 0) {
for(unsigned int i=0; i<glob_result.gl_pathc; ++i){
files.push_back(std::string(glob_result.gl_pathv[i]));
}
}
globfree(&glob_result);
// 輸出符合條件的文件路徑
for(const std::string& file : files) {
std::cout << file << std::endl;
}
return 0;
}
在上面的示例代碼中,glob()
函數會將所有匹配*.txt
格式的文件路徑存儲在glob_result.gl_pathv
中,然后將這些文件路徑存儲在files
向量中。最后,遍歷files
向量并輸出符合條件的文件路徑。
需要注意的是,在使用glob()
函數后,需要使用globfree(&glob_result)
函數來釋放glob_result
結構體所占用的內存。