只能读取一个文件夹下面的文件,不能识别文件夹下面的文件夹里面的文件!!!!!!!!
int fileNameFilter(const struct dirent *cur)
{
std::string str(cur->d_name);
if (str.find(".jpg") != std::string::npos)
{
return 1;
}
return 0;
}
vector<string> getFilesList(string dirpath){
DIR *dir = opendir(dirpath.c_str());
if (dir == NULL)
{
cout << "opendir error" << endl;
}
vector<string> allPath;
struct dirent *entry;
int j=1;
while (j>0)
{
struct dirent **namelist;
int n = scandir("/home/hzq/FieldWork/SDK_http_1/picture", &namelist, fileNameFilter, alphasort);
if(n < 0)
cerr << "memery error " << endl;
else
cout << "total number is: " << n << endl;
for( int i = 0; i < n; i++)
{
// /* skip . && .. */
// if(namelist[i]->d_name[0] == '.')
// continue;
char *str3;
string str1="/home/hzq/FieldWork/SDK_http_1/picture/";
string str2=namelist[i]->d_name;
sprintf(str3,"%s%s",str1.c_str(),str2.c_str());
// string ppp="/home/hzq/FieldWork/SDK_http_1/picture/"+namelist[i]->d_name;
allPath.push_back(str3);
// cout<<namelist[i]->d_name<<endl;
free(namelist[i]);
}
j--;
free(namelist);
// sleep(5);
}
closedir(dir);
//system("pause");
return allPath;
}
int main(){
vector<string> ret=getFilesList("/home/hzq/FieldWork/SDK_http_1/picture");
}