Sign in Join

Live chat for Free Pascal, Lazarus, Delphi and every Pascal programmer.

Catalog · How the catalog works

Random project

DiskMapPro

View on GitHub

Anyone may press Interesting, signed in or not. It helps others find this project.

Member rating

No ratings yet.

Sign in to rate this project.

README

DiskMap Pro

DiskMap Pro main window

A Windows disk space analyzer built with Delphi 12. Multithreaded scanning, in-memory search, CSV and HTML reports.

Generated HTML report


Highlights

  • Multithreaded scanning with pause, resume, and cancel
  • In-memory search across the full scanned tree, debounced live
  • Recursive folder statistics with top-100 largest files and folders
  • CSV and HTML export — Excel-friendly CSV, self-contained HTML report
  • Layered architecture — Models, Services, Engines, Utils, Forms
  • Validated on real workloads: 790,000 files, 150,000 folders, 796 GB

Full engineering review in CODE_REVIEW.md.


Features

Scanning

  • Multithreaded recursive scanning with a responsive UI
  • Pause, resume, and cancel mid-scan
  • Live progress counters polled at 150 ms
  • Reparse point detection to prevent loops
  • Access-denied folders counted, scan continues

Analysis

  • Recursive size, file count, and folder count on every folder
  • Top-100 largest files across the scan
  • Top-100 largest folders by recursive size
  • Live in-memory substring search across every file and folder
  • Optional full-path matching

Export

  • Multi-file CSV export (Summary, Largest Files, Largest Folders, optional Folder Listing)
  • UTF-8 with BOM, Excel-friendly
  • Both raw-bytes and human-readable size columns
  • Self-contained HTML report with embedded CSS

User Experience

  • Windows shell icons for all file types
  • Natural sorting (File2 before File10)
  • Native sort arrows on column headers
  • Keyboard shortcuts: Ctrl+F, F5, Ctrl+E, Esc, Enter, Backspace
  • Per-view column sorting with sensible defaults
  • Auto-sizing Path column
  • Empty-state overlays

Screenshots

Largest Files Largest Files view

Largest Folders Largest Folders view

Live search Live search

Generated HTML report Generated HTML report


Getting started

Requirements

  • Windows 10 or 11
  • Delphi 12 Community Edition or higher — only needed to build from source

Build from source

bash
git clone https://github.com/jawad-9/DiskMapPro.git
  1. Open Source\DiskMapPro.dproj in Delphi
  2. Set the target platform to Windows 32-bit
  3. Project → Build
  4. Run with F9

Just run it

Download DiskMapPro.exe from the Releases page. Single-file executable, no installer required.


Architecture

mermaid
flowchart TD
    Forms["<b>Forms</b><br/>MainForm, ExportDialog"]
    Engines["<b>Engines</b><br/>Scan, Statistics, Export, Search"]
    Services["<b>Services</b><br/>FileSystemService"]
    Models["<b>Models</b><br/>ScanResult, FolderInfo, FileInfo,<br/>ScanSummary, StatisticsResult, DriveInfo"]
    Utils["<b>Utils</b><br/>Formatting, ShellIcons, Comparators"]

    Forms -->|uses| Engines
    Forms -->|uses| Utils
    Forms -->|reads| Models
    Engines -->|uses| Services
    Engines -->|reads/writes| Models
    Engines -->|uses| Utils
    Services -->|creates| Models
  • Models are pure data. No I/O, no VCL.
  • Services interface with the OS outside the scan loop.
  • Engines operate on models. One job each: scan, statistics, export, search.
  • Forms coordinate — user actions in, engine calls out, results displayed.
  • Utils are stateless helpers with no project dependencies.

No engine imports a form. No model imports an engine. Full ownership rules and threading contract are documented in CODE_REVIEW.md.


Roadmap

Completed

  • [x] Multithreaded background scanning
  • [x] Recursive folder statistics
  • [x] Largest Files and Largest Folders views
  • [x] Live in-memory search
  • [x] Column sorting with natural sort
  • [x] CSV and HTML export
  • [x] Pause, resume, and cancel scans
  • [x] Windows shell icons
  • [x] Keyboard shortcuts

Planned

  • [ ] File type analysis (extension breakdown)
  • [ ] Duplicate file finder
  • [ ] File and folder deletion
  • [ ] Long-path support (\\?\ prefix)
  • [ ] Unit tests

Documentation


License

MIT — see LICENSE.


Author

Jawad — Computer Science student at Yanbu Industrial College, Saudi Arabia.

GitHub: @jawad-9