Skip to content

kingToolbox/WindFind

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 

Repository files navigation

WindFind

A high performace file locator for instantly finding files and folders by name.

Hello WindFind 🌹, hello world!

If you want a high performance SSH/Telnet/Serial/Shell client, you can try WindTerm.

If you want a high performance text editor, you can try WindEdit.

Background

When developing WindTerm, I need a fast file locator, so WindFind was created as a by-product. Hope it is a good by-product.

License

Completely FREE for commercial and non-commercial use without limitations. All released source codes (except thirdparty directory) are provided under the terms of Apache-2.0 license.

Spotlight

Any user, any file system

WindFind supports any user indexing any file system, as long as the operating system can read it, everything can be indexed quickly.

Super-fast speed, ultra-small index

WindFind's folder traversal speed is unmatched. Once it detects administrator privileges, it directly indexes the MFT, delivering incredibly fast performance. The thoughtfully designed index data structure allows each file to be represented with just 4 bytes, capturing its path, file size, and modification time, resulting in an index file that is smaller than ever before.

Rich features that meet your every need.

More than just indexing and searching—it's a master at displaying file lists and calculating sizes! Enjoy vibrant colors, striking icons, and lightning-fast printing speeds, all designed to elevate your file browsing experience to new heights!

Features

  • Whether indexing, searching, or outputting, it is incredibly fast.
  • Indexing files is highly optimized, generating only 4 MiB of index data for every million files.
  • Supports indexing files from any file system, similar to everything, locate, mlocate, plocate.
  • Supports displaying file lists, similar to dir, ls, but very fast.
  • Supports displaying a tree view of file lists, similar to tree, but very fast.
  • Supports calculating folder sizes, similar to du, but very fast.
  • Supports customizable rules to color files and assign icons based on folder names, file names, and file extensions, similar to exa, eza, lsd.
  • Supports regex search for files or folders in a specified directory, similar to find, fd.

Usage

Special folders

  • . Current folder
  • .. Parent folder
  • / Root folder
  • ~ Home folder

List files

  • wf . Display the file list of the current folder.
  • wf .. Display the file list of the parent folder.
  • wf / Display the file list of the root folder.
  • wf ~ Display the file list of the home folder.
  • wf c:\folder Display the file list of a specified folder.
  • wf c:\folder1,c:\folder2,c:\folder3 Display the file lists of specified multiple folders.
  • wf -d 3 c:\folder Display a tree view of the specified folder, with a maximum depth of 3 levels. The long option for -d is --depth.
  • wf -d 3 c:\folder1,c:\folder2,c:\folder3d Display the tree view of each specified folder, with a maximum depth of 3 levels.

Calculate the folder size

  • wf -s c:\folder Display the sizes of each subfolder in the specified folder. The long option for -s is --size.
  • wf -s -n 10 c:\folder Display the top 10 largest subfolders in the specified folder. The long option for -n is --lines.
  • wf -s -d 3 -n 10 c:\folder Display the top 10 largest subfolders in the specified folder with a maximum depth of 3 levels.
  • wf -s c:\folder1,c:\folder2,c:\folder3 Display the sizes of each subfolder in the specified multiple folders.
  • wf -s -n 10 c:\folder1,c:\folder2,c:\folder3 Display the top 10 largest subfolders in the specified multiple folders.
  • wf -s -d 3 -n 10 c:\folder1,c:\folder2,c:\folder3 Display the top 10 largest subfolders in the specified multiple folders with a maximum depth of 3 levels.

Index and search files

  • wf -u Update the index file, if it doesn't exist, create it. The long option for -u is --update.
  • wf -u c:\folder Update the index for the specified folder, if it doesn't exist, create it.
  • wf . regex Use regex to search for files in the current folder without updating the index.
  • wf -C . regex Use regex to search for files in the current folder with case insensitivity and without updating the index. The long option for -C is --case-sensitive.
  • wf -u . regex First update the index, then use regex to search for files in the current folder.
  • wf -u .,..,c:\folder regex1 regex2 regex3 First update the index, then search for files matching the regex1, regex2 and regex3 in the current folder, the parent folder, and c:\folder.
  • wf -u .,..,c:\folder regex1|regex2|regex3 First update the index, then search for files matching any of the regex1, regex2 and regex3 in the current folder, the parent folder, and c:\folder

Note: By default, matches are case insensitive.

Note: wf -u c:\folder regex and wf c:\folder regex -u are equivalent. If the previous command didn't find any files, simply append -u to update the index and search again, making it very convenient.

Performance

The hardware used for generating the data in these benchmarks was

windows 10 - 2.3 GHz Intel Core i5 and 8GB memory.

The version of clients:

Application Version Release Date
WindFind Birth v1.0.0 2024-11-01
Everything v1.4.1.1024.x64 2023-05-26
Everything v1.5.0.1383a.x64 2024-06-17

All test data is for reference only.

Disk C: NTFS File System

WindFind Birth Everything v1.4.1.1024.x64 Everything v1.5.0.1383a.x64
User Role Administrator Regular User Administrator Administrator
Indexed File Count 1561029 1539637 1561161 1561160
Indexed File Size 6.80 MiB (compressed) 6.69 MiB (compressed) 13.2 MiB (compressed)
41.5 MiB (uncompressed)
37.0 MiB (uncompressed)
Create Index (Cold Data) 6.336s 10.20s 87.12s 10.25s
Create Index (Hot Data) 4.314s 5.148s 87.70s 6.30s
Update Index 1.175s 1.242s Very fast, tens of ms Very fast, tens of ms
Load Index Duration 0.132s 0.128s Slow, 1s - 2s Slow, 1s - 2s
Save Index Duration 0.155s 0.148s Slow, 1s - 4s Slow, 1s - 4s
Single Regex Search Duration Very fast, 8ms - 12ms Very fast, 8ms - 12ms Very fast, tens of ms Very fast, tens of ms

Disk D: exFAT File System

Note: Everything v1.4.1.1024.x64 does not support the exFAT file system.

WindFind Birth Everything v1.5.0.1383a.x64
User Role Administrator, Regular User Administrator, Regular User
Indexed File Count 200758 200757
Indexed File Size 0.73 MiB (compressed) 4.1 MiB (uncompressed)
Create Index (Cold Data) 1.566s 10.48s
Create Index (Hot Data) 1.027s 1.38s
Update Index 1.055s Very fast, tens of ms
Load Index Duration 20ms Slow, several hundred milliseconds
Save Index Duration 27ms Slow, several hundred milliseconds
Single Regex Search Duration Very fast, 8ms - 12ms Very fast, tens of ms

Download

Windows binary: https://github.com/kingToolbox/WindFind/releases

Linux binary and MacOS binary will be released soon, stay tuned!

Source Code

Since WindFind is just a by-product of WindTerm, and all the source code is shared with WindTerm, if you have any source code requirements, please visit WindTerm.

Please note that WindTerm, WindEdit, and WindFind are all partial open source projects.

Issues and feature requests

Any issues and feature requests are welcome.

Please click issues to commit an issue or a feature request.

Please click Discussion to discuss any topics related to file systems, indexing, and performance improvements.