Как вывести названия всех файлов в определенной папке. xcode c++

188
27 марта 2018, 01:36

Имеется папка с наличием в ней текстовых документов например: a.txt, b.txt. Как вывести названия этих файлов?

include <iostream>
using namespace std;
int main(int argc, const char * argv[]) {
...
cin.get();
}
Answer 1

На современном C++ что-то вроде этого:

#include <iostream>
#ifdef __cpp_lib_filesystem
#include <filesystem>
namespace fs = std::filesystem;
#else
#include <experimental/filesystem>
namespace fs = std::experimental::filesystem;
#endif
int main(int argc, const char *argv[]) {
  if (argc < 2) {
    std::cerr << "provide an argument";
    return 1;
  }
  const auto dir = argv[1];
  for (const auto &f : fs::directory_iterator(dir)) {
    std::cout << f << std::endl;
  }
  return 0;
}

Компилировать с -std=c++17 и скорее всего -lstdc++fs.

См. также http://en.cppreference.com/w/cpp/filesystem/directory_iterator.

Answer 2

Если без C++17, вполне работает так:

#include <iostream>
#include <dirent.h>
int main() {
    if (argc < 2) {
        std::cerr << "Provide an argument";
        return 1;
    }
    DIR *dir = opendir(argv[1]);
    if (!dir) {
        std::cerr << "Could not open directory";
        return 2;
    }
    dirent *entry;
    while ((entry = readdir(dir)) != nullptr) {
        std::cout << entry->d_name << std::endl;
    }
}
READ ALSO
Как определить расстояние до объекта в метрах?

Как определить расстояние до объекта в метрах?

Как в LocationManager определить расстояние до объекта? Есть мои координаты, есть координаты конкретного объектаКак эту разницу перевести в метры?

194
Почему бин равен нулю?

Почему бин равен нулю?

Я новичок в спрингеВ папку package1 eсть класс Worker с одним методом working, класс Logger и класс Start, в котором все запускается: package package1;

180
Как сортировать ArrayList&lt;String[]&gt; obj

Как сортировать ArrayList<String[]> obj

Собственно, как сортировать Список по "полям" String[] - где objget(1)[0] - это - имя

136