Skip to main content

Fast NTFS indexing and search for Windows amd64.

Project description

py-ntfs-quick-index

Fast Windows NTFS indexing and search for amd64 machines.

pnqi uses NTFS MFT enumeration for initial indexing and the NTFS USN Journal for incremental refreshes. Indexes are stored as SQLite files named pnqi.index.sqlite in the volume root, for example C:\pnqi.index.sqlite.

Requirements

  • Windows only
  • amd64 / x86_64 CPU only
  • Administrator privileges
  • NTFS volumes only
  • Python 3.10+

The program elevates only at startup through py-admin-launch. Internal library calls require the already-elevated process and do not trigger additional UAC prompts.

Install

Install the latest release from PyPI:

python -m pip install py-ntfs-quick-index

Upgrade an existing install:

python -m pip install --upgrade py-ntfs-quick-index

For local development from a checkout:

python -m pip install -e .

CLI

Create or replace an index for a folder:

pnqi index C:\

Search with * wildcards. * matches any string, including \. Results are sorted by displayed size descending.

pnqi search "C:\Users\*\Desktop\*.pdf"

Show descendants sorted by recursive size:

pnqi sizes C:\Users --limit 100

Show only direct children:

pnqi sizes C:\Users --direct

CLI progress bars use tqdm, and Ctrl+C cancels cleanly.

GUI

pnqi-gui

The GUI supports creating indexes, searching wildcard paths, browsing indexed folders, and viewing recursive sizes. During long operations the interface is locked except for Cancel. Long tasks run in a worker process so NTFS MFT scans and indexed searches do not stall the Tk event loop. Search results stream back in small batches so large result sets remain cancellable, and the Max rows control limits how many sorted matches are displayed. Cancelled index builds write only to a temporary SQLite file and do not replace the existing index.

Build a GUI EXE

To build the GUI as a single-file Windows executable from a checkout:

scripts\build_gui_exe.bat

The script creates an isolated build virtual environment under .build, installs the current project and PyInstaller there, and writes dist\exe\pnqi-gui.exe. It does not change the Poetry package configuration or runtime dependencies.

Incremental Updates

On startup, and before searches or browsing, pnqi checks existing pnqi.index.sqlite files and replays USN Journal changes into SQLite. Folder sizes are maintained as recursive sums of all descendant files; older indexes are recalculated once when opened. Incremental updates replace stale records that still occupy a normalized path before writing the new file record. If the USN Journal was recreated or no longer contains the required history, pnqi reports that the index must be recreated.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

py_ntfs_quick_index-0.1.6.tar.gz (27.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

py_ntfs_quick_index-0.1.6-py3-none-any.whl (28.9 kB view details)

Uploaded Python 3

File details

Details for the file py_ntfs_quick_index-0.1.6.tar.gz.

File metadata

  • Download URL: py_ntfs_quick_index-0.1.6.tar.gz
  • Upload date:
  • Size: 27.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.2.1 CPython/3.13.5 Windows/11

File hashes

Hashes for py_ntfs_quick_index-0.1.6.tar.gz
Algorithm Hash digest
SHA256 f412f9f419ced2785026364b323e4d0bee5ff2a503f19771a45dc9f683663556
MD5 a74fbbc859120c87636af4ee8278bc6d
BLAKE2b-256 35089fb8c3ca07fde5875a301c37660945d42c8acd7d698637eba36da39d8989

See more details on using hashes here.

File details

Details for the file py_ntfs_quick_index-0.1.6-py3-none-any.whl.

File metadata

File hashes

Hashes for py_ntfs_quick_index-0.1.6-py3-none-any.whl
Algorithm Hash digest
SHA256 fa0370119d238cd050fe80079ebc5a88838400099b78f3ed55a133136f455f2e
MD5 9b9b2fd9666a53d1e1b0c21537e284ba
BLAKE2b-256 c9d4f321753084718fc12790fb5ffdf9b83536c97cc341f8c308a95aeb5e55c7

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page