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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f412f9f419ced2785026364b323e4d0bee5ff2a503f19771a45dc9f683663556
|
|
| MD5 |
a74fbbc859120c87636af4ee8278bc6d
|
|
| BLAKE2b-256 |
35089fb8c3ca07fde5875a301c37660945d42c8acd7d698637eba36da39d8989
|
File details
Details for the file py_ntfs_quick_index-0.1.6-py3-none-any.whl.
File metadata
- Download URL: py_ntfs_quick_index-0.1.6-py3-none-any.whl
- Upload date:
- Size: 28.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.2.1 CPython/3.13.5 Windows/11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fa0370119d238cd050fe80079ebc5a88838400099b78f3ed55a133136f455f2e
|
|
| MD5 |
9b9b2fd9666a53d1e1b0c21537e284ba
|
|
| BLAKE2b-256 |
c9d4f321753084718fc12790fb5ffdf9b83536c97cc341f8c308a95aeb5e55c7
|