- Verzeichnistiefe und maximale Anzahl an Dateien über Parameter steuerbar - weitere Features implementiert wie Laufzeitmessung
5.6 KiB
5.6 KiB
⚙️ CLI-Template für C (MSVC)
Ein leichtgewichtiges C-Projekttemplate für die Kommandozeile unter Windows, vorbereitet für den Microsoft Visual C Compiler (MSVC).
Inhalt
Features
- Rekursive Verzeichnissuche mit Unicode-Symbolen (📁 📄)
- Optionale Tiefenbegrenzung via
--depth N
- Limitierung der Dateiausgabe pro Verzeichnis via
--limit N
- Unicode-fähige Konsolenausgabe auf Windows (
SetConsoleOutputCP
) - Debugging vorbereitet via
launch.json
(VS Code) - Sauber modularisierter Code (main + Module + Config)
- MSVC-kompatibles Buildsystem (
cl.exe
+rc.exe
+link.exe
) - Unterstützt
Makefile
+Makefile.config
für Debug/Release
Struktur
Alle notwendigen Verzeichnisse und Dateien wurden mit ✅ markiert, diese sind unverzichtbar für den Buildprozess.
❌ markiert alles, was optional ist oder ignoriert werden kann.
📁 treescanner
📁 .vscode # ❌ VS Code-Konfiguration (Debug, Build, Editor-Style)
📄 launch.json # ❌ Debug-Konfiguration (z. B. scanner.exe + Breakpoints)
📄 tasks.json # ❌ Build-Task für Make unter Windows
📁 build # ✅ Buildverzeichnis
📁 output # ✅ Kompilierte .exe und .obj-Dateien
📁 include # ✅ Header-Dateien
📄 app.h # ✅ Schnittstelle für scan_directory()
📄 scanner_config.h # ✅ Konfiguration für Tiefen-/Limitsteuerung
📁 resources # ✅ Ressourcen wie version.rc
📄 version.rc # ✅ Icon- und Versionsdefinition
📁 src # ✅ Quellcode (.c-Dateien)
📄 main.c # ✅ Einstiegspunkt mit Argumentverarbeitung
📄 app.c # ✅ rekursiver Verzeichnisscan (Windows API)
📄 scanner_config.c # ✅ Initialisierung und Verwaltung der Konfiguration
📄 build.cmd # ✅ Buildskript (ruft `vcvars64.bat` und `make` auf)
📄 clean.cmd # ✅ Löscht `/build/output` + ggf. `.pdb`
📄 README.md # ❌ Diese Datei
📄 .gitignore # ❌ Ignoriert z. B. *.obj, *.pdb, /build/
Voraussetzungen
Compiler (MSVC)
- Visual Studio Build Tools
- Umgebung wird über
vcvars64.bat
gesetzt
Make (empfohlen: MSYS2)
make
aus MSYS2 installieren:pacman -S make
Nutzung
Build
build.cmd
→ erzeugt build/output/scanner.exe
Optionen
scanner.exe [verzeichnis] [--depth N] [--limit N]
Beispiele:
scanner.exe
scanner.exe "D:\Projekte" --depth 3
scanner.exe . --limit 5
Dokumentation
Plattformhinweis
ℹ️ Aktuell ausschließlich für Windows (MSVC / WinAPI) vorgesehen.
POSIX-Implementierung (opendir
,readdir
) ist vorbereitet aber nicht aktiv.
Geplante Features
Funktion / Option | Beschreibung | Status |
---|---|---|
--depth N |
Maximale Verzeichnistiefe | ✅ Fertig |
--limit N |
Max. Dateien pro Verzeichnis | ✅ Fertig |
--ignore DIR |
Verzeichnisse ausschließen | ⬜ Geplant |
--output FILE |
Ausgabedatei (Standard: tree.md ) mit plaintext -Block |
⬜ Geplant |
ASCII-Baumstruktur (├── ) |
grafische Darstellung mit Baumzeichen → Standardmäßig aktiv | ⬜ Geplant |
--no-tree-symbols |
Option zum Deaktivieren der Baumzeichensymbole | ⬜ Geplant |
--console |
explizite Konsolenausgabe einschalten | ⬜ Geplant |
--align-comments |
Ausrichtung von Kommentaren in Spalte | ⬜ Geplant |
--language de/en |
Sprache der Ausgaben und Zusammenfassung | ⬜ Geplant |
Scan-Zusammenfassung | Ausgabe: 📦 23 Dateien in 5 Ordnern , ggf. mit Pfad |
⬜ Geplant |
Fortschrittsanzeige | Zeitgesteuerte Live-Ausgabe | ⬜ Optional |
POSIX-Kompatibilität | Unterstützung für Linux (opendir , readdir ) |
⬜ Vorbereitet |
Symbol-Set anpassbar | Benutzerdefinierte Icons (📁, 📄 etc.) | ⬜ Optional |
Laufzeit erfassen | Zu Benchmarkzwecken Durchlaufzeit erfassen von Start bis Ende | ✅ Fertig |
Lizenz
MIT siehe Datei LICENSE