diff --git a/src/fs_reader.cpp b/src/fs_reader.cpp index a8683d5..d0522df 100644 --- a/src/fs_reader.cpp +++ b/src/fs_reader.cpp @@ -10,24 +10,41 @@ namespace fs = std::filesystem; // Rinse and Repeat // Avoid recursion if possible -std::vector find_all_files(std::string filesystem_path) { - for (const auto & entry : fs::directory_iterator(filesystem_path)) { - std::cout << entry.path() << "\n"; +std::vector find_all_files(std::string filesystem_path) { + std::vector files = {"test"}; + + for (const fs::directory_entry & entry : fs::directory_iterator(filesystem_path)) { + if (entry.is_directory()) { + continue; + } + files.insert(files.begin()+files.size(), entry.path()); } - return std::vector(0) = {}; + + files.shrink_to_fit(); + return files; } -std::vector find_all_folders(std::string filesystem_path) { - return std::vector(0) = {}; +std::vector find_all_folders(std::string filesystem_path) { + std::vector folders = {}; + + for (const fs::directory_entry & entry : fs::directory_iterator(filesystem_path)) { + if (entry.is_directory()) { + folders.insert(folders.begin()+folders.size(), entry.path()); + } + } + + folders.shrink_to_fit(); + return folders; } -std::vector find_all_files_and_folders(std::string filesystem_path) { - std::vector files = find_all_files(filesystem_path); - std::vector folders = find_all_folders(filesystem_path); - std::vector files_and_folders = {}; +std::vector find_all_files_and_folders(std::string filesystem_path) { + std::vector files = find_all_files(filesystem_path); + std::vector folders = find_all_folders(filesystem_path); + std::vector files_and_folders = {}; + files_and_folders.reserve(files.size() + folders.size()); files_and_folders.insert( files_and_folders.end(), files.begin(), files.end() ); files_and_folders.insert( files_and_folders.end(), folders.begin(), folders.end() ); - return std::vector(0) = {}; + return files_and_folders; } diff --git a/src/fs_reader.h b/src/fs_reader.h index d7af628..d358568 100644 --- a/src/fs_reader.h +++ b/src/fs_reader.h @@ -1,6 +1,8 @@ #include #include +#include +namespace fs = std::filesystem; -std::vector find_all_files(std::string filesystem_path); -std::vector find_all_folders(std::string filesystem_path); -std::vector find_all_files_and_folders(std::string filesystem_path); \ No newline at end of file +std::vector find_all_files(std::string filesystem_path); +std::vector find_all_folders(std::string filesystem_path); +std::vector find_all_files_and_folders(std::string filesystem_path); \ No newline at end of file diff --git a/src/main.cpp b/src/main.cpp index 0bc97a5..5c5463d 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -1,7 +1,14 @@ #include +#include #include "fs_reader.h" int main(int argc, char *argv[]) { - (void)find_all_files_and_folders(argv[1]); + std::vector files_and_folders = find_all_files_and_folders(argv[1]); + + for (size_t index = 0; index < files_and_folders.size(); index++) { + std::cout << "index " + std::to_string(index) + ": " + files_and_folders.at(index).string() << std::endl; + } + + files_and_folders.clear(); return 0; } \ No newline at end of file