Skip to content

Search file contents inside nested archives #200

Description

@sarensw

Problem

MacPacker can browse nested archives without extracting them, but it cannot search the contents of files stored inside those archives.

For large document collections, backups, project handoffs, and old archives, users may remember a phrase or identifier without knowing which document—or which archive layer—contains it. Manually opening and extracting every candidate is slow and creates unnecessary temporary files.

Filename filtering is already discussed in #45. This issue covers content search, including files inside nested archives.

Proposed behavior

Allow users to search text within supported files in the currently opened archive.

  • Follow supported nested archive layers while preserving the complete path to every result
  • Search common text and document formats where practical
  • Show useful result locations, such as a PDF page, document paragraph, slide, or spreadsheet cell
  • Open or preview the matching file directly from the result
  • Process everything locally
  • Start with the currently opened archive rather than building a background full-disk index

Search integrity and safety

A partial search must never look like a complete “no results” search.

  • Clearly report unreadable or corrupt archive branches
  • Distinguish unsupported encryption or a cancelled password prompt from “no match”
  • Make archive depth, expanded-size, item-count, and time limits visible
  • Protect against archive bombs and runaway nested extraction
  • Keep duplicate filenames distinguishable through their full nested paths
  • Handle an archive or source volume disappearing during a search

Suggested implementation stages

  1. Finish fast filename/path filtering from The QuickLook button looks more like it's meant to search the files in the archive #45
  2. Add content search for plain text and PDFs
  3. Add modern Office/OpenDocument formats
  4. Evaluate OCR for images and scanned PDFs separately

Out of scope for the first version

  • Background indexing of the whole Mac
  • OCR
  • Semantic or AI search
  • Search across unrelated archives that are not currently open

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions