C ++如何将目录中的文件名放入向量中?

时间:2013-12-03 08:33:38

标签: c++ boost vector

我只需要将目录中的所有文件(或文件名?)放入向量中,以便我可以对它们进行排序并按顺序打开它们。

我真的不知道如何做到这一点,因为这是我第一次遇到C ++。我尝试过boost :: filesystem但是我没有成功,因为这对我来说很陌生。请帮忙!

我实际上找到了一个我觉得可行的方法但是我现在正努力在命令行中添加一个链接器,但我想如果我在这里问这个问题,它将超出原始问题的范围。

2 个答案:

答案 0 :(得分:3)

取自您的previous question

std::vector<std::string> filenames;
dpdf = opendir("/data/files");
if (dpdf != NULL) {
   while (epdf = readdir(dpdf)) {
      filenames.push_back(std::string(epdf->d_name));
   }
}

答案 1 :(得分:2)

namespace fs = boost::filesystem;
fs::directory_iterator b("path of directory"), e;
std::vector<fs::path> paths(b, e);

这包括子目录(但不包括其内容)。如果要排除子目录,可以在路径上使用fs::is_directory来检查它是否是目录。如果要包含子目录的内容,则可以使用recursive_directory_iterator而不是directory_iterator