Windows:

#include<iostream>
#include<string>
#include <io.h>
void readFileNameInDir(IN string strDir, INOUT vector<string>& vFileFullPath)
{
       long handle;    //文件句柄
       struct _finddata_t fileInfo;    //文件结构体
       handle = _findfirst(strDir.c_str(), &fileInfo);    //第一次查找,获取文件句柄
       while (!_findnext(handle, &fileInfo))
       {
              vFileFullPath.push_back(fileInfo.name)
       }
       _findclose(handle);
}    //readFileNameInDir()

Linux:

#include <string>
#include <vector>
#include <dirent.h>

void readFileNameInDir(IN string strDir, INOUT vector<string>& vFileFullPath)
{
       struct dirent* pDirent;
       DIR* pDir = opendir(strDir.c_str());
       if (pDir != NULL)
       {
              while ((pDirent = readdir(pDir)) != NULL)
              {
                     string strFileName = pDirent->d_name;
                     string strFileFullPath = strDir + "/" + strFileName;
                     vFileFullPath.push_back(strFileFullPath);
              }
              vFileFullPath.erase(vFileFullPath.begin(), vFileFullPath.begin() +  2);    //前两个存储的是当前路径和上一级路径,所以要删除
       }
}    //readFileNameInDir()
02-11 07:30