1. 程式人生 > >純cpp實現:獲取某個目錄下面所有相同類型文件的路徑字符串

純cpp實現:獲取某個目錄下面所有相同類型文件的路徑字符串

無法 lose all fin 圖像處理 純c 關閉 std const

做圖像處理驗證算法過程中,經常需要讀取大量圖片,用opencv,有的版本還不帶有 contri.h 這個頭文件

就無法使用它提供的Directory這個類,網上找到了一個很不錯的用法,純cpp的,這樣多好,不受平臺的

限制,感謝

需要添加的頭文件

1 #include <iostream>
2 #include <io.h>
3 #include <vector>
4 #include <fstream>

具體代碼:

 1 void get_all_file_path(string path, vector<string>&files, string
fileType) { 2 3 //文件句柄 4 long hFile = 0; 5 struct _finddata_t fileInfo; 6 string p; 7 8 if ((hFile = _findfirst(p.assign(path).append("\\*" + fileType).c_str(), &fileInfo)) != -1) { 9 do { 10 files.push_back(p.assign(path).append("\\").append(fileInfo.name));
11 } while (_findnext(hFile, &fileInfo) == 0); 12 13 _findclose(hFile);//關閉句柄 14 15 } 16 17 }

使用:

 1 const string single_images_dir = "H:\\002_SenseLine\\month07\\00_images\\000_singles\\";
 2 std::vector<std::string> file_names;
 3 
 4 get_all_file_path(single_images_dir, file_names, "
.bmp"); 5 6 for (int i = 0; i < file_names.size(); i++) 7 { 8 string file_path = file_names[i]; 9 Mat img = imread(file_path); 10 imshow("原圖", img); 11 }

純cpp實現:獲取某個目錄下面所有相同類型文件的路徑字符串