diff --git a/public/consolidated/cpp.json b/public/consolidated/cpp.json index ae19d751..f293d347 100644 --- a/public/consolidated/cpp.json +++ b/public/consolidated/cpp.json @@ -78,47 +78,6 @@ } ] }, - { - "categoryName": "File Handling", - "snippets": [ - { - "title": "Find files recursively", - "description": "Find all the files in a directory and subdirectories using a predicate function.", - "author": "majvax", - "tags": [ - "filesystem", - "file_search", - "c++17" - ], - "contributors": [], - "code": "#include \n#include \n#include \n\ntemplate \nstd::vector find_files_recursive(const std::string& path, P&& predicate) {\n std::vector files;\n std::error_code ec;\n\n if (!std::filesystem::exists(path, ec) || ec)\n return files;\n if (!std::filesystem::is_directory(path, ec) || ec)\n return files;\n\n auto it = std::filesystem::recursive_directory_iterator(path, ec);\n if (ec)\n return files;\n\n for (const auto& entry : it)\n if (!std::filesystem::is_directory(entry) && predicate(entry.path()))\n files.push_back(entry.path());\n\n return files;\n}\n\n\n\n// Usage:\n\n// Find all files with size greater than 10MB\nauto files = find_files_recursive(\"Path\", [](const auto& p) {\n return std::filesystem::file_size(p) > 10 * 1024 * 1024;\n});\n\n// Find all files with \".pdf\" as extension\nauto files = find_files_recursive(\"Path\", [](const auto& p) {\n return p.extension() == \".pdf\";\n});\n\n// Find all files writed after The New Year\n#include \n// need std=c++20\nauto jan_1_2025 = std::filesystem::file_time_type::clock::from_sys(\n std::chrono::sys_days{std::chrono::year{2025}/std::chrono::month{1}/std::chrono::day{1}}\n);\nauto files = find_files_recursive(\"Path\", [jan_1_2025](const auto& p) {\n return std::filesystem::last_write_time(p) > jan_1_2025;\n}),\n" - }, - { - "title": "Find files", - "description": "Find all the files in a directory using a predicate function.", - "author": "majvax", - "tags": [ - "filesystem", - "file_search", - "c++17" - ], - "contributors": [], - "code": "#include \n#include \n#include \n\ntemplate \nstd::vector find_files(const std::string& path, P&& predicate) {\n std::vector files;\n std::error_code ec;\n\n if (!std::filesystem::exists(path, ec) || ec)\n return files;\n if (!std::filesystem::is_directory(path, ec) || ec)\n return files;\n\n auto it = std::filesystem::directory_iterator(path, ec);\n if (ec)\n return files;\n\n for (const auto& entry : it)\n if (!std::filesystem::is_directory(entry) && predicate(entry.path()))\n files.push_back(entry.path());\n\n return files;\n}\n\n\n\n// Usage:\n\n// Find all files with size greater than 10MB\nauto files = find_files(\"Path\", [](const auto& p) {\n return std::filesystem::file_size(p) > 10 * 1024 * 1024;\n});\n\n// Find all files with \".pdf\" as extension\nauto files = find_files(\"Path\", [](const auto& p) {\n return p.extension() == \".pdf\";\n});\n\n// Find all files writed after The New Year\n#include \n// need std=c++20\nauto jan_1_2025 = std::filesystem::file_time_type::clock::from_sys(\n std::chrono::sys_days{std::chrono::year{2025}/std::chrono::month{1}/std::chrono::day{1}}\n);\nauto files = find_files(\"Path\", [jan_1_2025](const auto& p) {\n return std::filesystem::last_write_time(p) > jan_1_2025;\n}),\n" - }, - { - "title": "List Directories", - "description": "Lists all the directories in a path.", - "author": "majvax", - "tags": [ - "filesystem", - "directories", - "c++17" - ], - "contributors": [], - "code": "#include \n#include \n#include \n\nstd::vector list_directories(const std::string& path) {\n std::vector files;\n std::error_code ec;\n\n if (!std::filesystem::exists(path, ec) || ec)\n return files;\n if (!std::filesystem::is_directory(path, ec) || ec)\n return files;\n\n auto it = std::filesystem::directory_iterator(path, ec);\n if (ec)\n return files;\n\n for (const auto& entry : it)\n if (std::filesystem::is_directory(entry))\n files.push_back(entry.path());\n\n return files;\n}\n\n\n\n// Usage:\nauto directories = list_directories(\"Path\");\n" - } - ] - }, { "categoryName": "Math And Numbers", "snippets": [