FolderWatch is a lightweight, fully offline Windows desktop tool for snapshotting a folder and later detecting what changed in it — files added, removed or modified — using SHA-256 hashing.
Download the current Windows x64 portable ZIP from the latest release, extract it, and run FolderWatch.exe.
See the v1.1.1 patch notes and v1.1.0 feature notes.
- Select any local folder and create a JSON snapshot of its contents
- Snapshot stores relative path, size, modified time and SHA-256 hash per file
- Compare a saved snapshot against the current folder state
- Detect Added, Removed, Modified, Unchanged and Inaccessible entries, with read-failure diagnostics
- Include/exclude wildcard rules and optional Development/Temporary presets, saved in schema v2 snapshots
- Open and compare old v1.0.0 snapshots; comparison automatically uses their saved scope
- Filter results by status, including Inaccessible
- Cancel snapshot creation/comparison without saving incomplete cancelled output
- Live statistics above the results grid
- Clear results while keeping the selected folder
- Export the filtered results to CSV
- Dark desktop UI, fully offline, no application runtime NuGet dependencies (test packages are development-only)
- Windows 10 or Windows 11 (x64)
- No separate .NET install needed to run the published release — it's self-contained
Grab the latest portable build from the Releases page:
FolderWatch-vX.X.X-win-x64.zip— unzip and runFolderWatch.exe. No installer, no .NET runtime required.
- Select a folder
- Create a snapshot
- Later, select the same folder again
- Compare it against the saved snapshot
- Filter the results and export them to CSV if needed
For new snapshots, optionally enter semicolon-separated rules: *.tmp; *.log; bin; obj; .git; node_modules; Thumbs.db. No preset is selected by default. Names match at any depth; relative paths match from the root. * matches within a name, ? matches one character and ** spans folders. Exclusions win over includes; empty include means all files. Use None / Reset to clear rules. Rules stay in the session and in the snapshot, without storing settings or file contents.
Comparison always uses the snapshot's rules, replacing current session rules with a visible notice. A partial snapshot retains readable files and reports skipped/inaccessible entries. Directory diagnostics protect unknown descendants from false Removed/Added claims. Inaccessible counts can include directories, whose unseen file counts are unknown. Reparse points are skipped with diagnostics to avoid loops and scanning outside the selected root; snapshot files ending in .folderwatch.json remain excluded automatically, as in v1.0.0.
CSV exports the current status-filtered rows, sizes, UTC modification times and reasons. Cancel retains previous comparison results and leaves existing snapshot files intact. A snapshot is not a filesystem-wide atomic transaction; detected per-file changes are reported as Inaccessible and should be retried.
Requirements: Windows, .NET 8 SDK.
dotnet restore FolderWatch.sln
dotnet build FolderWatch.sln -c Release
dotnet test FolderWatch.sln -c ReleaseTo create a local v1.1.1 package using the same packaging script as release CI:
./scripts/package.ps1 -Tag v1.1.1The ZIP and independently verifiable .zip.sha256 file are written under artifacts/rc. This does not create a Git tag or GitHub release.
FolderWatch runs fully offline. It sends no telemetry, phones home to nothing, and uploads no data — snapshots and comparisons stay on your machine.
MIT License. See LICENSE.
For software questions, email support@almarfeld.com. Report reproducible bugs and feature requests in FolderWatch issues. Do not post private files or credentials in public issues.
Report vulnerabilities privately to security@almarfeld.com. See SUPPORT.md and SECURITY.md.
ALMARFELD · Independent software development · almarfeld.com
