Skip to content

[feature] Extend noise files list with common OS-generated files #265

@paul-fresquet

Description

@paul-fresquet

Summary

Extend the list of known "noise files" that are automatically excluded when the user enables the "Exclude system files" option. The current list is minimal and misses many common OS-generated files.

Current State

The current implementation only excludes 5 files:

var isCommon = fileInfo.Name.In("desktop.ini", "thumbs.db", ".desktop.ini", ".thumbs.db", ".DS_Store");

Proposed Extended List

Windows

File Purpose
desktop.ini Folder customization settings
thumbs.db Thumbnail cache
ehthumbs.db Windows Media Center thumbnail cache
ehthumbs_vista.db Vista Media Center thumbnail cache
$RECYCLE.BIN Recycle bin folder

macOS

File Purpose
.DS_Store Finder folder metadata
.AppleDouble Resource fork storage
.LSOverride Launch Services override
.Spotlight-V100 Spotlight search index
.Trashes Trash folder on volumes
.fseventsd File system events daemon data
.TemporaryItems Temporary items folder
.VolumeIcon.icns Custom volume icon
.AppleDB Apple database files
.AppleDesktop Apple desktop database

Linux

File Purpose
.directory KDE/Dolphin folder metadata

Acceptance Criteria

  • Update the noise file list in FileSystemInspector (or new NoiseFileDetector)
  • Use case-insensitive comparison for Windows files
  • Use case-sensitive comparison for macOS/Linux files
  • Add inline documentation explaining each file's origin
  • Unit tests verifying detection of all listed files
  • Consider both file names and directory names (e.g., .Spotlight-V100 is a directory)

Technical Notes

  • Some entries are directories (.Spotlight-V100, .Trashes, $RECYCLE.BIN)
  • The noise filter should apply to both files and directories
  • Consider using a HashSet<string> for O(1) lookup performance

Priority

Standard — Improves user experience by reducing clutter in inventories.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions