Skip to content

Repository files navigation

DiskScope

A native Windows disk space analyzer. DiskScope scans a drive or folder and shows where the space went — through a treemap, a directory tree, largest-file and file-type reports, duplicate detection and historical comparison — while staying local, private and non-destructive by default.

Everything is built against the design specification in Native Windows Disk Space Analyzer — Product & Technical Design Specification.md, which remains the authority on scope and behaviour.

Status

All ten phases are complete. DiskScope is a working disk analyzer: pick a drive or folder, watch the scan run, and explore what it found through a dashboard, an interactive treemap, an expandable directory tree, file-type and file-age breakdowns, a largest-files list and search. Files and folders can be opened, revealed in Explorer or sent to the Recycle Bin, and duplicate files found without reading a drive to do it. Scans are saved and reopened from the history, and exported as CSV, JSON or an HTML report. It ships as a portable ZIP and a per-user installer.

Phase Scope Status
1 Solution, DI, logging, configuration, MVVM, shell window, navigation, themes Complete
2 Scanner: enumeration, metadata, cancellation, progress, aggregation Complete
3 Persistence: SQLite schema, batch writes, scan sessions Complete
4 Basic UI: drive selection, scan screen, dashboard, tree, largest files Complete
5 Visualization: treemap, file-type and modified-date analysis Complete
6 Search: name, path, size and date filters over a stored scan Complete
7 File operations: open, reveal, copy path, Recycle Bin, confirmation Complete
8 Duplicate finder: size, partial hash, full hash, hard-link aware Complete
9 Reports and export: CSV, JSON, and a self-contained HTML report Complete
10 Polish: single instance, high contrast, installer, portable build Complete

Cleanup (design spec section 16) is the one section still showing its empty state: it is not part of any phase, and it recommends what to delete rather than deleting anything new. Nothing in the application simulates a scan.

Requirements

  • Windows 10 or Windows 11, 64-bit
  • .NET SDK 10.0 or newer to build (the repository is developed against 10.0.400)

The application itself runs as a standard user. It never requests elevation for normal operation.

Build and run

dotnet restore
dotnet build
dotnet test
dotnet run --project src/DiskScope.App

Build output goes to artifacts/ rather than per-project bin/ and obj/ folders.

To build what is distributed — a portable ZIP and a per-user installer:

./build/publish.ps1

See docs/PACKAGING.md; the installer step needs the WiX toolset and says so if it is missing.

Using it

Pick a drive on the home screen, or Choose folder... for anywhere else. The scan screen shows live counters and can be paused or cancelled; when it finishes, the dashboard opens by itself.

  • Overview — what the volume holds and what the scan found, kept apart on purpose.
  • Treemap — every folder drawn in proportion. Hover to describe, double-click to open, and colour by folder, file type or size.
  • Folders — the directory tree, largest first, opened a level at a time.
  • Largest Files — the biggest files anywhere in the scan, with size filters.
  • File Types — what kinds of file are using the space, by category and by extension.
  • Modified — how much of the scan has been sitting untouched.
  • Search — find files by name, folder, size or date without walking the disk again.
  • Duplicates — files with identical contents, and what keeping one copy would free.
  • History — every saved scan; reopen one without walking the disk again.

The Overview screen exports the scan as CSV or JSON for a spreadsheet or another program, or as a self-contained HTML report to read and share (one file, nothing fetched when it is opened).

Search matches a word anywhere in the name. * and ? work as they do in a shell, and a bare extension such as .iso finds files of that type. Size, age and ordering are buttons rather than syntax to remember, and results come back as you type.

Right-click anything in a list, the folder tree or the treemap to open it, show it in Explorer, copy its path, see its properties or delete it. Deleting sends the item to the Recycle Bin and asks first, showing what will go and how large it is; permanent deletion is a setting, and always asks. The stored scan is a record of what the disk held when it ran, so its totals do not change until you scan again.

Ctrl+O chooses a folder, Ctrl+F searches, F5 scans the current location again, Esc stops a scan. In a list: Enter opens, Ctrl+C copies the path, Alt+Enter shows properties, Delete deletes.

DiskScope.exe "D:\Projects" scans that folder on startup. Only one copy runs at a time: starting a second brings the first forward and hands it the folder.

When Windows is using a high contrast theme, DiskScope follows its colours rather than its own.

Driving the scanner from the command line

The benchmark harness runs the same engine without the interface:

dotnet run --project tools/DiskScope.Benchmark -- scan "C:\Windows" --store
dotnet run --project tools/DiskScope.Benchmark -- list
dotnet run --project tools/DiskScope.Benchmark -- show 1
dotnet run --project tools/DiskScope.Benchmark -- duplicates 1 --minimum-size 1048576
dotnet run --project tools/DiskScope.Benchmark -- export 1 report.html

scan walks a real tree and reports throughput, memory and anything it could not read; --store persists it into the same database the application reads. See docs/PERFORMANCE.md for measured numbers and docs/DATABASE.md for what gets stored.

Where DiskScope keeps its files

By default the application is installed: data, logs and configuration live under %LOCALAPPDATA%\DiskScope. An installed application must never write mutable state into its own program directory.

Placing a file named DiskScope.portable next to DiskScope.exe switches it to portable mode, where Data, Logs and Config sit beside the executable instead. If that directory turns out not to be writable, the per-user location is used and a warning is written to the log.

The About screen shows which mode is active and the exact directories in use.

Repository layout

src/
  DiskScope.App              WPF shell: views, view models, navigation, theming
  DiskScope.Core             Domain models, interfaces, product identity, settings contracts
  DiskScope.Infrastructure   Logging, settings persistence, application paths, DI wiring
  DiskScope.Scanner          Scanning engine
  DiskScope.Duplicates       Duplicate detection: size grouping, staged hashing
  DiskScope.Export           CSV, JSON and HTML report writing
  DiskScope.Storage          SQLite persistence of scans and scan history
  DiskScope.Visualization    Treemap layout, colour palettes, chart geometry
  DiskScope.Windows          Windows platform services
tests/
  DiskScope.Tests            Unit and integration tests
tools/
  DiskScope.Benchmark        Scanner benchmark harness and tree generator
build/
  publish.ps1                Builds the portable ZIP and the installer
  Package.wxs                The WiX installer definition
docs/
  ARCHITECTURE.md            How the projects fit together
  DEVELOPMENT.md             Working on the codebase
  SCANNER.md                 How the scanning engine works
  DATABASE.md                Schema, write strategy and the decisions behind them
  VISUALIZATION.md           Treemap, colour and the chart screens
  FILE-OPERATIONS.md         Opening, revealing and deleting, and the rules around them
  DUPLICATES.md              How duplicate detection narrows the field before reading
  EXPORT.md                  Writing scans out as data or as a report
  PACKAGING.md               The portable ZIP and the per-user installer
  PERFORMANCE.md             Measured numbers and how to reproduce them

Documentation is written by the phase that creates the thing it describes, so more files appear here as later phases land.

Privacy

DiskScope is entirely local. It has no account, no telemetry, no analytics and no network calls of any kind. File names and paths never leave the machine.

Licence

MIT. DiskScope is an independent implementation; no code, artwork or UI resources are taken from any other disk analysis product.

About

A native Windows disk space analyzer: treemap, directory tree, duplicate detection and scan history. Local, private and non-destructive by default.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages