Skip to content

Releases: patridge/FileDeduplicator

v0.2.0

14 May 02:20

Choose a tag to compare

  • Major overhaul of the UI using Spectre.Tui
    • Spectre.Tui-based UI: Reworked the duplicate results viewer and scan progress into a full TUI experience (DuplicateResultsViewer, CacheViewer, and supporting components), which keeps the UI rendering directly to the terminal rather than adding new lines
  • New file hash caching system
    • File hash caching: Persistent file hash cache stored in app storage to speed up repeat scans (FileHashCache, CacheCommand, cache viewer TUI)
    • Cache viewer: See the list of currently cached file data with options for deleting some/all entries
  • Export scan results
    • Scan result export: Export scan results to JSON for later review (E shortcut, to current path)
  • Usability improvements
    • Navigation: Navigate around match list with paging and home/end key support
    • Match detail improvements: Show modified date and full root path in duplicate details view
    • Display consistency: Unify file size formatting (0.00 display)
    • Usability: Switched from yellow to orange for better readability on light terminal backgrounds

v0.1.1

25 Apr 00:48

Choose a tag to compare

Almost a full rewrite of prototype to use a comparer system: file type comparers, interactive duplicate browser, and scan filtering options.

Interactive results browser

  • Navigate a paged file match list
  • Sort option to change between path name or largest file size first
  • Detail view per match showing file paths, sizes, hashes, and timestamps
  • Open files directly from the match file item
  • Refresh option to re-verify a match after making any external changes

Scan filtering customization parameters

  • Multi-directory scanning with multiple --path (-p) parameters
  • --min-size (-s): Prevent scanning files under a particular size using size shorthand (e.g., --min-size 500MB, --min-size 2GB)
  • --exclude (-x): Allow skipping entire subdirectory trees
  • --exclude-extension: Allow skipping files by extension (e.g., .log, .tmp)
  • --exclude-filename: Allow skipping specific filenames
  • --exclude-system-files: Shorthand to allow excluding common OS-generated files (.DS_Store, Thumbs.db, etc.)

Content-aware file comparison

  • Added file type-specific comparer system with initial implementations for audio (ID3 tags), image (EXIF data), and binary files
  • --allow-metadata-diffs (-m) flag: compare files by content only, ignoring embedded metadata differences

v0.1.0

25 Apr 00:23

Choose a tag to compare

NOTE: Builds removed since they had an issue with trimming a dependency library in a way that resulted in the final builds now running correctly.

Almost a full rewrite of prototype to use a comparer system: file type comparers, interactive duplicate browser, and scan filtering options.

Interactive results browser

  • Navigate a paged file match list
  • Sort option to change between path name or largest file size first
  • Detail view per match showing file paths, sizes, hashes, and timestamps
  • Open files directly from the match file item
  • Refresh option to re-verify a match after making any external changes

Scan filtering customization parameters

  • Multi-directory scanning with multiple --path (-p) parameters
  • --min-size (-s): Prevent scanning files under a particular size using size shorthand (e.g., --min-size 500MB, --min-size 2GB)
  • --exclude (-x): Allow skipping entire subdirectory trees
  • --exclude-extension: Allow skipping files by extension (e.g., .log, .tmp)
  • --exclude-filename: Allow skipping specific filenames
  • --exclude-system-files: Shorthand to allow excluding common OS-generated files (.DS_Store, Thumbs.db, etc.)

Content-aware file comparison

  • Added file type-specific comparer system with initial implementations for audio (ID3 tags), image (EXIF data), and binary files
  • --allow-metadata-diffs (-m) flag: compare files by content only, ignoring embedded metadata differences