TreeScanner ist ein leichtgewichtiges, portables CLI-Tool zur rekursiven Analyse von Verzeichnisstrukturen. Es erzeugt eine klar strukturierte ASCII-Ausgabe und eignet sich hervorragend für Dokumentation, Debugging oder Buildsysteme.
🔧 Diese Version ist eine komplette Neuentwicklung in Rust und ersetzt das ursprüngliche Python-Projekt:
➜ treeScannerASCII (Python)
Der original treeScanner in Python ist unter https://github.com/realAscot/treeScannerASCII zu finden. Dieser ist auch als Python-Modul zu verwenden.
Der treeScanner.exe ist ursprünglich als ein Tool entwickelt worden mit dem man Verzeichnisstrukturen für Dokumentationen erzeugen konnte.
TreeScanner durchsucht Verzeichnisse rekursiv, filtert optional bestimmte Ordner aus und gibt eine strukturierte ASCII-Baumdarstellung mit Icons und optional ausgerichteten Kommentaren aus.
Er eignet sich für technische Dokumentationen, Versionskontrollen, Release-Skripte und CI/CD-Prozesse.
Der Installer treeScanner-Setup.exe der jeweils die aktuelle Version auf GitHub enthällt, bietet Dir an das Programm im Windows-Verzeichnis zu installieren.
Dies ist zwar unüblich aber
GEPLANTE STRUKTUR (DEV)
📁 treeScanner #
├── 📁 .cargo #
│ └── 📄 config.toml #
├── 📁 .vscode #
│ └── 📄 tasks.json #
├── 📁 media #
│ ├── 📄 logo-treescanner.png #
│ └── 📄 logo-treescanner_512x512.png #
├── 📁 resources #
│ ├── 📄 icon.ico #
│ └── 📄 version.rc #
├── 📁 src #
│ ├── 📁 app #
│ │ ├── 📄 mod.rs #
│ │ └── 📄 treebuilder.rs #
│ ├── 📁 config #
│ │ ├── 📄 args.rs #
│ │ ├── 📄 loader.rs #
│ │ └── 📄 mod.rs #
│ ├── 📁 utils #
│ │ ├── 📄 ascii_spinner.rs #
│ │ ├── 📄 logger.rs #
│ │ └── 📄 mod.rs #
│ ├── 📄 lib.rs #
│ └── 📄 main.rs #
├── 📁 tests #
│ ├── 📄 config_tests.rs #
│ └── 📄 treebuilder_tests.rs #
├── 📄 .gitignore #
├── 📄 build.rs #
├── 📄 Cargo.lock #
├── 📄 Cargo.toml #
├── 📄 CHANGELOG.md #
├── 📄 LICENSE #
├── 📄 Makefile #
├── 📄 README.md #
└── 📄 VERSION #
- 📁 ASCII-Baumdarstellung mit Icons (📁, 📄)
- 🚫 Ignorierliste per CLI oder Konfig-Datei
- ⏫ Limit für Tiefe (
--max-depth) und Dateianzahl pro Verzeichnis - 📄 Ausgabe in Datei oder Konsole
- ⚙ Konfigurierbar via
~/.treescanner.conf - 🌀 Fortschrittsanzeige beim Scannen (Spinner)
- 💬 Optionale Kommentarspalte (
--align-comments) - 🧪 Getestete Komponenten (unit-tested)
- 🔕 Silent-Modus (
--quiet) - 🛠 Portable Binary (
.exe) ohne externe Abhängigkeiten
# Einfacher Scan (aktuelles Verzeichnis)
./treescanner.exe
# Mit Tiefe 3, ohne speichern
./treescanner.exe --max-depth 3 --viewonly
# Mit Kommentar-Ausrichtung
./treescanner.exe --align-comments
# Ergebnis in Datei mit anderem Pfad speichern
./treescanner.exe --output ./struktur/tree.md
📁 ./src/
├── 📄 main.rs #
├── 📁 app/ #
│ └── 📄 treebuilder.rs #
└── 📁 utils/ #
├── 📄 ascii_spinner.rs #
└── 📄 logger.rs #
Standardmäßig gesucht im Benutzerverzeichnis:
Windows: C:\Users\<Benutzername>\.treescanner.conf
Linux: /home/<user>/.treescanner.conf
max_depth = 3
max_files_per_dir = 100
ignore = [".git", "target", ".vscode"]
output = "tree.txt"
viewonly = false
align_comments = false- CLI-Einstellungen überschreiben Konfigurationswerte bei Kollision
- Die Datei wird beim ersten Start automatisch erzeugt, falls sie fehlt
- Der Pfad ist nicht fest kodiert, sondern dynamisch via
dirs::home_dir()ermittelt
Du benötigst zum selbst kompilieren eine funktionierende Toolchain. Das Makefile steht Dir als anhalt zur Verfügung.
- npm installieren ->
Dieses Projekt steht unter der MIT-Lizenz.
| Crate | Lizenz |
|---|---|
clap |
MIT/Apache |
dirs |
MIT/Apache |
serde |
MIT/Apache |
serde_derive |
MIT/Apache |
toml |
MIT/Apache |
tempfile |
MIT/Apache (nur für Tests) |
console |
MIT |
siehe LICENSE
Adam Skotarczak
✉ adam@skotarczak.net
🔗 realAscot auf GitHub
