{"id":25808122,"url":"https://github.com/misaghmomenib/file-manager-cpp","last_synced_at":"2026-06-12T17:33:14.686Z","repository":{"id":278796068,"uuid":"936800013","full_name":"MisaghMomeniB/File-Manager-Cpp","owner":"MisaghMomeniB","description":"In This Project, I Wrote With C Plus Plus That You Can Manage Your Files and Have Different Options With It","archived":false,"fork":false,"pushed_at":"2025-06-13T14:17:22.000Z","size":51,"stargazers_count":6,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-06-13T15:31:47.518Z","etag":null,"topics":["cpp","file-manager","git","open-source"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/MisaghMomeniB.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-02-21T17:55:08.000Z","updated_at":"2025-06-13T14:17:25.000Z","dependencies_parsed_at":"2025-02-21T19:23:48.022Z","dependency_job_id":"52aa6057-064b-4ad5-9af5-93e9073d2566","html_url":"https://github.com/MisaghMomeniB/File-Manager-Cpp","commit_stats":null,"previous_names":["misaghmomenib/file-manager-cpp"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/MisaghMomeniB/File-Manager-Cpp","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MisaghMomeniB%2FFile-Manager-Cpp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MisaghMomeniB%2FFile-Manager-Cpp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MisaghMomeniB%2FFile-Manager-Cpp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MisaghMomeniB%2FFile-Manager-Cpp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MisaghMomeniB","download_url":"https://codeload.github.com/MisaghMomeniB/File-Manager-Cpp/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MisaghMomeniB%2FFile-Manager-Cpp/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34256180,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-12T02:00:06.859Z","response_time":109,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cpp","file-manager","git","open-source"],"created_at":"2025-02-27T21:58:26.152Z","updated_at":"2026-06-12T17:33:14.680Z","avatar_url":"https://github.com/MisaghMomeniB.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🗂️ File Manager C++  \n\nA simple yet powerful **cross-platform file manager** and library written in modern C++.  \nUse it as a CLI tool to explore directory structures or embed it in your C++ projects.\n\n---\n\n## 📋 Table of Contents\n\n1. [Overview](#overview)  \n2. [Features](#features)  \n3. [Installation \u0026 Build](#installation--build)  \n4. [Usage](#usage)  \n5. [Library Integration](#library-integration)  \n6. [Supported Platforms](#supported-platforms)  \n7. [Tech \u0026 Design](#tech--design)  \n8. [License](#license)  \n9. [Contributing](#contributing)\n\n---\n\n## 💡 Overview\n\nThis project lets you:\n\n- Traverse and list files/directories with filters  \n- Generate tree-like directory maps and save to output files  \n- Integrate file-management utilities into your C++ programs\n\nBuilt using **C++17** (leveraging `std::filesystem`) with clean, simple APIs. Ideal for learning and direct use! :contentReference[oaicite:1]{index=1}\n\n---\n\n## ✅ Features\n\n- `list_files(...)` – returns file/directory entries, filtered by extensions  \n- `writeToFile(...)` – outputs directory structure in tree format (`|--`)  \n- CLI utility **`fmanager`** with options:\n  - `-p`, `--path`: set traversal start directory  \n  - `-l`, `--list_files`: print file listing  \n  - `-t`, `--tree`: print tree output  \n  - `-d`, `--ignore_dirs`: skip specified directories  \n  - `-e`, `--ignore_extensions`: exclude specific extensions  \n  - `-s`, `--separator`: customize tree marker (e.g. `-`, `*`) :contentReference[oaicite:2]{index=2}  \n\n---\n\n## ⚙️ Installation \u0026 Build\n\n**Prerequisites**:\n\n- A compiler supporting **C++17** (`g++`, `clang++`, MSVC)  \n- CMake (optional, for building the library and CLI)\n\n**Build steps**:\n\n```bash\ngit clone https://github.com/MisaghMomeniB/File-Manager-Cpp.git\ncd File-Manager-Cpp\nmkdir build \u0026\u0026 cd build\ncmake .. \nmake          # or `cmake --build .`\n````\n\nThis produces:\n\n* `fmanager` CLI binary\n* Static library (`libcpp-file-manager.a`) and headers in `include/`\n\n---\n\n## 🛠️ Usage\n\n### CLI Examples\n\n```bash\n# List files in \"samples\" directory\n./fmanager -p samples -l\n\n# Generate a tree in current dir, ignoring .git and \".o\" files\n./fmanager -p . -t -d .git,build -e .o\n\n# Use '-' as tree separator\n./fmanager -p . -t -s '-'\n```\n\n### Library Integration\n\nIn your C++ code:\n\n```cpp\n#include \"FileManager.hpp\"\n\nint main() {\n    FileManager fm(\"/path/to/dir\");\n    auto list = fm.list_files({\".tmp\"}, true);\n    for (auto \u0026item : list) {\n        std::cout \u003c\u003c (item.is_dir ? \"[DIR] \" : \"[FILE] \") \u003c\u003c item.name \u003c\u003c \"\\n\";\n    }\n    fm.writeToFile({\".git\", \"build\"}, {\".log\", \".tmp\"});\n    return 0;\n}\n```\n\nCompile with:\n\n```bash\ng++ main.cpp -Iinclude -Lbuild -lcpp-file-manager -o app\n```\n\n---\n\n## 🌍 Supported Platforms\n\n* **Linux**: fully supported\n* **Windows / macOS**: experimental pending further testing, PRs welcome! ([github.com][1])\n\n---\n\n## 🧩 Tech \u0026 Design\n\n* Leverages `std::filesystem` for portable traversal\n* Encapsulated in `FileManager` class using RAII\n* CLI built with lightweight argument parsing\n* Filters use standard C++ containers and lambdas for clean code\n\n---\n\n## 📄 License\n\nLicensed under the **MIT License** — see [LICENSE](LICENSE) file.\n\n---\n\n## 🤝 Contributing\n\nContributions and feedback are welcome!\nPlease:\n\n1. Fork the repo\n2. Create a branch (`feature/XXX`)\n3. Submit a clean PR describing your changes\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmisaghmomenib%2Ffile-manager-cpp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmisaghmomenib%2Ffile-manager-cpp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmisaghmomenib%2Ffile-manager-cpp/lists"}