c++获取文件夹下所有文件名

  备注:标题中的所有文件名指的不仅仅是文件夹

  最近两个月在caffe的底层徘徊,少不了要写层、该层,收获还是满满的。因为caffe工程是采用QT进行调试的,所以今天写数据层中涉及到的一个小环节就是给定一个文件夹的绝对路径名,获取其中所有的文件名,查了好多采用io.h的和opencv glob,要么是不能用,要么是不方便后续处理,最终感谢http://www.php.cn/python-tutorials-363937.html 博主,其中提供了一个好用的函数,记录如下:

void readFilenamesBoost(vector<string> &filenames, const string folder)
{
  path directory(folder);
  boost::filesystem::directory_iterator itr(directory), end_itr;
  string current_file = itr->path().string();

  for (; itr != end_itr; ++itr)
  {
    if (is_regular_file(itr->path()))
    {
      string filename = itr->path().filename().string(); // returns just filename
      filenames.push_back(filename);
    }
  }
}

函数中filenames是我们所想要得到的结果,其中记录了所有文件名, folder则是我们要给的文件名的绝对路径。

猜你喜欢

转载自blog.csdn.net/Suan2014/article/details/81706802