Skip to content

Latest commit

 

History

38 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DuplicateFF v1.1.0

Version License Language Platform

Professional duplicate file finder with a progressive hashing pipeline for terabyte-scale scanning. PowerShell WPF with Catppuccin Mocha dark theme.

DuplicateFF Screenshot

Features

  • 6-Stage Progressive Hashing - Size grouping, prefix hash, suffix hash, full SHA256, byte-verify eliminates 95%+ of files before full reads
  • Reference Folders - Mark folders as protected; duplicates will never be selected from these locations
  • File Type Filters - Images, Videos, Audio, Documents, or All Files with min/max size limits
  • Exclude Patterns - Skip .git, node_modules, $RECYCLE.BIN, and custom folder patterns
  • Image Preview - Inline preview panel for visual verification before deletion
  • Auto-Select Rules - Keep Newest, Oldest, From Reference Folders, Largest, or Shortest Path
  • Safe Deletion - Recycle Bin (default), Permanent Delete, or Hardlink replacement with atomic temp-link safety
  • Right-Click Context Menu - Open File, Open Folder, Copy Path, Copy Hash, Select Group, Select All from Folder
  • Search/Filter Results - Real-time filtering by filename or folder path
  • CSV Export - RFC-compliant CSV with UTF-8 BOM for Excel compatibility
  • Action Audit Log - JSON log of every delete/hardlink operation with timestamps and hashes
  • Async Scanning - Non-blocking UI with elapsed time, scan statistics, and cancellation
  • NTFS Hardlink Detection - Excludes same-inode files from results to avoid inflated counts
  • Find Unique Files - Inverse mode finds files in scan folders with no match in reference
  • Duplicate Folders - Detects entire directory trees that are identical copies
  • Dark Theme - Catppuccin Mocha with High Contrast support and screen reader accessibility
  • Full CLI Mode - Scriptable with -Scan, -Reference, -AutoSelect, -Delete, -Json, -DryRun, -MaxSize, -Exclude, -IncludePattern, -ExcludePattern, -MinDate, -MaxDate, -FindUnique, -FindDupeFolders

Usage

GUI

.\DuplicateFF.ps1
  1. Click Add Folder to add directories to scan (or drag-and-drop folders)
  2. Optionally add Reference Folders (protected from deletion)
  3. Set filters (min/max size, file type, subfolders)
  4. Click Scan for Duplicates
  5. Review results, use auto-select or manual checkbox selection
  6. Right-click rows for context menu actions
  7. Choose delete mode and click Delete Selected

CLI

.\DuplicateFF.ps1 -Scan "D:\Photos" -Reference "D:\Archive" -AutoSelect KeepNewest -Delete RecycleBin
.\DuplicateFF.ps1 -Scan "C:\Projects" -MaxSize "1 GB" -Exclude ".git","node_modules" -Json
.\DuplicateFF.ps1 -Scan "D:\Media" -IncludePattern "\.(jpg|png|raw)$" -DryRun -Delete Permanent -AutoSelect KeepOldest
.\DuplicateFF.ps1 -Scan "C:\Source" -Reference "D:\Backup" -FindUnique
.\DuplicateFF.ps1 -Scan "D:\Data" -FindDupeFolders
.\DuplicateFF.ps1 -Scan "D:\Photos" -MinDate "2024-01-01" -MaxDate "2024-12-31"

How It Works

The progressive hashing pipeline avoids reading entire files whenever possible:

Stage Action Typical Elimination
1 Enumerate files with filters N/A
2 Group by file size ~70% of files
3 SHA256 of first 4KB ~15% more
4 SHA256 of last 4KB ~5% more
5 Full SHA256 hash Final grouping
6 Byte-by-byte verification Hash collision protection

Only files surviving all stages get fully hashed and byte-verified, making scans fast and safe even on large datasets.

Research

See Building a professional duplicate file finder: A technical guide for the research behind this tool, covering algorithm selection, perceptual hashing for AI upscale detection, and performance architecture.

License

MIT License

About

[ARCHIVED] Technical guide and architecture reference for building a duplicate file finder. No application code.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages