实验::文件系统:: directory_iterator&安培;操作者++()

时间:2018-05-04 20:44:57

标签: c++ c++17

我正在编写一个程序,它将目录中的所有文件名都放在一个数组中。我遇到的问题是operator ++()显示错误并且不会增加迭代器。任何帮助将不胜感激。

#include <iostream>
#include <string>
#include <filesystem>

namespace fs = std::experimental::filesystem;

int main()
{
    std::cout << "Select a directory :";
    std::string path;
    std::cin >> path;
    std::cout << "How many files :";
    int dirFiles;
    std::cin >> dirFiles;
    int i = { 0 };
    std::vector<std::string> fileNames(dirFiles);

    for (auto& p : fs::directory_iterator(path)){
        while (i < dirFiles) {
            fileNames[i] = p.path().string();
            fs::directory_iterator& operator++();
            std::cout << fileNames[i];
            i++;
        }
    }
    system("pause");
    return 0;
}

1 个答案:

答案 0 :(得分:1)

directory_iterator已经知道如何循环其组成元素。您不需要自己做额外的工作:

std::vector<std::string> fileNames;

for (auto& p : fs::directory_iterator(path)){
    fileNames.push_back(p.path().string());
}