主要使用#include <io.h>库下的函数
如果 路劲句柄定义为long类型,_findnext函数会报 访问异常,解决方法参考:http://blog.csdn.net/kelvin_yan/article/details/53997840
实例代码:
#include <fstream>
#include <string>
#include "utils.h"
#include <stdio.h>
#include <direct.h>
#include <iostream>
#include <io.h>
using namespace std;
using namespace cv;
string trainPtah = "F://vido and images fro test//UIUC texture database";
void getClassName(string path, vector<string>& paths)
{
intptr_t hFile = 0;
struct _finddata_t fileinfo;
string p;
hFile = _findfirst(p.assign(path).append("\\*").c_str(), &fileinfo);
if (hFile != -1) {
while (_findnext(hFile, &fileinfo) == 0) {
if (fileinfo.attrib & _A_SUBDIR) {
if (strcmp(fileinfo.name, ".") != 0 && strcmp(fileinfo.name, "..") != 0) {
paths.push_back(p.assign(path).append("/").append(fileinfo.name));//保存文件夹名字
}
}
}
}
}
void main()
{
vector<string> paths;
getClassName(trainPtah, paths);
for (int i = 0; i < paths.size(); i++) {
cout << paths.at(i) << endl;
}
system("pause");
}