Lightweight File Lister: Fast Directory Indexing for Power Users
Purpose: A compact tool for quickly scanning directories and producing searchable, sortable indexes of files without heavy resource use.
Key features
- Fast indexing: Multithreaded directory traversal and metadata extraction (name, size, type, dates, checksum).
- Low resource usage: Minimal memory and CPU footprint; suitable for older machines and servers.
- Incremental updates: Detects changed files and updates the index instead of rescanning everything.
- Search & filter: Regex and wildcard search, filter by size/date/type, and quick faceted results.
- Export formats: CSV, JSON, HTML directory listings, and SQLite for advanced queries.
- Preview support: Quick previews for text, images, and popular binary types (hash/hex view for others).
- Portable: Single-file binary or small install, no heavy dependencies.
- Cross-platform: Works on Windows, macOS, and Linux.
- CLI + minimal GUI: Scriptable command-line interface plus an optional lightweight GUI for browsing.
Typical use cases
- Power users needing fast directory snapshots for large file trees.
- Administrators building searchable file inventories across network shares.
- Developers generating file manifests or checksums for deployments.
- Archivists creating lightweight HTML indexes for directories.
Example workflow (CLI)
- Build index: filelister index –path /data –output db.sqlite
- Update incrementally: filelister update –path /data
- Search: filelister search –db db.sqlite –query “*.log” –min-size 1M
- Export: filelister export –db db.sqlite –format html –out dir-listing.html
Implementation notes
- Use file system watchers (inotify, FSEvents, ReadDirectoryChanges) for real-time updates.
- Store metadata in SQLite for fast queries and small footprint.
- Compute checksums optionally (MD5/SHA1) to avoid unnecessary overhead.
- Provide configuration for threadpool size and IO throttling.
Pros & cons
| Pros | Cons |
|---|---|
| Extremely fast, low overhead | Limited advanced features compared to full file managers |
| Easy automation via CLI | GUI is intentionally minimal |
| Portable and cross-platform | May require permissions for network shares |
If you want, I can draft a README, CLI reference, or a simple implementation plan (languages, libraries, data schema).
Leave a Reply