Giter VIP home page Giter VIP logo

ffs's Introduction

FFS For Fu... Fast File Search :)

FFS was made as an experiment with NTFS and specifically MFT along with WPF in order to see how fast can the search be.. and it turned out to be pretty fast!!

In order to scan MFT you need to provide an admin access to the software, this is normal and there's no need to be worried about this step! This software provides no harm and only performs scanning, everything else is processed outside the MFT based on working copies extracted from there

Introduction

First step is scanning drive's master file table aka metadata 1

Once you're done with this all that's left to do is the actual file query 2

The query options (green rectangle)

  • * - to display all files
  • .ext - to display all files that match specific extension
  • filename - regular string to display all filenames that match specific substring

Stats (red rectangle)

  • self explanatory, uses stopwatch

Toolbar options (blue rectangle)

  • Show selected file in explorer
  • Open selected file with an associated program
  • Export all the files to a CSV file

Files list (orange rectangle)

  • that's where you can select a specific file you're interested in and perform various operations from the toolbar (see blue rectangle section)

Right now queries are very simple as they do what's needed for me hence why the class is called "Simple queries" however this bit should be abstracted so it shouldn't be too hard to add a new option such as JSON query with some sort of a Query builder maybe? Oh well the possibilities are endless!

List of things worth improvement

  • Replace AdonisUI with some other fast, efficient and good looking WPF UI theme (I like adonis, you can't blame me..)
  • Add more export options
  • Look into context menu or some better interactions for more actions (context menus are borked thanks to adonis)
  • Add more file search options that support Non-NTFS drives (obviously it won't be as fast as MFT but it's going to make this software more suitable for using with other types of drives)
  • Other options

Extras

You can find NTFS MFT reader repository with my optimizations here: https://github.com/Sir3eBpA/ntfsreader-sf This is the one I use when generating NtfsReader.dll file, it might be worth to include it into this repo as a submodule but I barely touch it so found no need for it yet

Performance

Scanning all 3 drives I have on my end (875 gb of data OR 3,224,292 files)

  1. File name search (substring in string) - ~1215 ms 1
  2. extension search (reference comparison) - ~67 ms 2
  3. search all - ~122 ms 3

Hardware specs:

  • i7-9700K (3.6 ghz)
  • 32 gb ram
  • Samsung SSD 860 EVO (500 gb)
  • Samsung SSD 860 EVO (1000 gb)

Misc

PR's are welcome! I don't plan to update or maintain this tool in near time until I have a need to do that... but feel free to open an Issue and I'll try to check it out if there's enough free time on my plate!

Tools and frameworks used (Would've been a tough one without them ;) ) :

ffs's People

Contributors

sir3ebpa avatar mfabruno avatar

Stargazers

zac avatar CuiLiang avatar Koo Tian Yaw avatar  avatar Rob avatar Alexander avatar Isaac Bickel avatar Jeff Ward avatar  avatar Donald Gjoka avatar John Gage Faulkner avatar Andrei Nitescu avatar Peter Vietense avatar Paulo Quicoli avatar Sebastian avatar  avatar Jan Rada avatar Vlad Tănăsescu avatar C Bee avatar  avatar  avatar Mauricio Pedroza avatar Mukund Shah avatar Anton avatar PK268 avatar  avatar Onán Tanco Paredes avatar

Watchers

 avatar

ffs's Issues

Unexpected wording (typo?)

In read me (highlight is mine):

Add more file search options that support Non-NFT drives (obviously it won't be as fast as MFT

From context it appears that Non-NFT should either be "Non-NTFS" or "Non-MFT". I'd prefer the latter, as it sounds more generic (multiple file systems implement MFT or a similar mechanism) but the former might be more accurate (given the dependency on the NTFS library). 😉

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.