Advertisement
Mafro

Untitled

Nov 29th, 2022
891
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.03 KB | None | 0 0
  1. #include <filesystem>
  2. #include <fstream>
  3. #include <string>
  4. #include <vector>
  5.  
  6. namespace gllang
  7. {
  8.     namespace fs  = std::filesystem;
  9.     using namespace std;
  10.    
  11.     vector<string> read_lines(fs::path straightPath)         // Чтение файла по линиям
  12.     {                                                       //
  13.         if (straightPath.empty()) return vector<string>{}; // Проверка на пустоту файла
  14.         vector<string> lines;                             // Массив Линий
  15.         string         line;                             // Получение Линии
  16.         ifstream       file;                            // Чтение Файла
  17.                                                        //
  18.         file.open(straightPath);                      // Открытие Файла
  19.                                                      //
  20.         while (std::getline(file, line, '\n'))      // Чтение Строк
  21.         {                                          //
  22.             lines.push_back(line);                // Заполнение Массива линиями
  23.         }                                        //
  24.         file.close();                           // Закрытие Файла
  25.                                                //
  26.         return lines;                         // Возращение массива линий
  27.     }
  28.  
  29.     vector<string> read_directory(fs::path directory, bool fullpath) // Получение файлов в директории
  30.     {
  31.         if (directory.empty()) return vector<string>{}; // проверка если директория пуста
  32.  
  33.         vector<string> files_in_directory{};
  34.         if (fullpath)   // Проверка на запрос полного пути или же нет
  35.             for (auto& value : fs::directory_iterator(directory))
  36.                 files_in_directory.push_back(value.path().string());   
  37.         else
  38.             for (auto& value : fs::directory_iterator(directory))
  39.                 files_in_directory.push_back(value.path().filename().string());
  40.  
  41.         return files_in_directory;
  42.     }
  43.  
  44.     vector<string> read_recursive_directory(fs::path directory)
  45.     {
  46.         if (directory.empty()) return vector<string>{}; // проверка если директория пуста
  47.        
  48.         vector<string> files_in_directores{};
  49.  
  50.         for (auto& value : fs::recursive_directory_iterator(directory))
  51.             files_in_directores.push_back(value.path().string());
  52.  
  53.         return files_in_directores;
  54.     }
  55.    
  56. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement