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

C++ How to put the names of files within a directory into a vector?

本文关键字:文件名 向量 C++      更新时间:2023-10-16

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

自从我第一次接触C++以来,我真的不知道该怎么做。我尝试过boost::文件系统,但没有成功,因为这对我来说很陌生。请帮忙!

事实上,我已经找到了一个我认为可以工作的方法,但我现在很难在命令行中添加链接器,但我认为如果我在这里问这个问题,它将超出最初问题的范围。

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

摘自您之前的问题:

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