printSTL

printРабота с файловой системой

В C++17 добавлен новый класс для работы с путями к файлам path, у которого определены методы filename() (имя файла), extension() (расширение), stem() (имя без расширения), parent_path() (путь к папке, содержащей файл). Также есть методы для замены имени и расширения файла, а операции / и /= позволяют добавить имя папки в путь, используя разделитель, заданный в ОС. Для получения и изменения текущего пути используется функция current_path.
Для обхода папок используются итераторы directory_iterator и recursive_directory_iterator, которые указывают на объект типа directory_entry с методами path() и status().
#include <iostream>
#include <filesystem>
namespace fs = std::filesystem;
int main()
{
  fs::path p=fs::current_path();
  std::cout << "Current path is " << p << '\n';
  for(auto& f: fs::directory_iterator(p))
    std::cout << f.path().string() << '\n';
}
loading