File Search Library

$ 99.96

Advanced parallel searching and indexing of files

The File Searcher Library is the most advanced library in the world to search and index source code files. It recognizes all known source code file type extensions. It excludes typical package directories, build directories, and node_modules directories to search only your source code. It automatically excludes minified JavaScript and CSS files. Many options are included for matching file names and matching text. Even with all of its power, it is simple to use.

Features

Feature Description
Super Fast Searching When searching, all available processors are used. Search speed is limited only by the hard drive speed and the CPU speed. Search even faster by creating an index and then searching the index.
Super Fast Indexing When indexing, all available processors are used. The indexing created for the File Search Library is 2x to 3x faster than Apache Lucene.
Advanced File Matching Include or Exclude files by Wildcard, Fuzzy Matching, Boolean Expression, Plain Text, Regular Expression or a Whole Word. Internally all processors are used for the file matching.
Advanced Text Matching Search by Plain Text, a Boolean Expression, Fuzzy Matching, Whole Word, Regular Expression, Multiline Regular Expression, Files Only or Directories Only. Internally all processors are used for the text matching.
Load Match Locations Get the search hits in a single file including the start position, length, and the text that was matched.
Other Advanced Options Perform case sensitive or insensitive searches. Include by Minimum/Maximum Last Modified Date. Include by Minimum/Maximum Kilobytes.
Simple Console Demo Included A simple console demo demonstrates the speed, power and simplicity of the library.
1 Year Free Upgrades Purchase today and all upgrades are free for the next year.
60 Day Money Back Guarantee At Kellerman Software, we want you to be totally satisfied with your purchase. Receive a refund within 60 days when ordering from KellermanSoftware.com. Source code versions are non-refundable due to their nature.
Lifetime Support Lifetime E-mail technical support is included.

There are no other commercial libraries for searching source code files.

Download a free 30 day trial today.

  • Full working version
  • Includes technical support
  • Compatible with Windows, macOS, Linux, iOS, Android and Docker.
  • Compatible with .NET Framework 4.5 and higher, .NET Core 2.0 and higher, Mono 5.4 and higher, Xamarin.iOS 10.14 and higher, Xamarin.Mac 3.8 and higher, Xamarin.Android 8.0 and higher, Universal Windows Platform 10.0.16299 and higher, Unity 2018.1 and higher, .NET 5, and .NET 6.

Download Options

 

 

The File Search Library requires the following system configuration.

  • Compatible with Windows, macOS, Linux, iOS, Android and Docker.
  • Compatible with .NET Framework 4.5 and higher, .NET Core 2.0 and higher, Mono 5.4 and higher, Xamarin.iOS 10.14 and higher, Xamarin.Mac 3.8 and higher, Xamarin.Android 8.0 and higher, Universal Windows Platform 10.0.16299 and higher, Unity 2018.1 and higher, .NET 5, and .NET 6.

Getting a list of files which contain the matching text

    //Setup the search parameters
    SearchParms parms = new SearchParms();

    //This is the directory to search
    parms.DirectoriesToSearch.Add(@"c:\_git");

    //Include all C# files by wildcard
    parms.FilesToInclude.Add("*.cs");
    parms.FileIncludeSearchType = FileSearchType.Wildcard;

    //Search for a plain text phrase
    parms.SearchString = "public partial class";
    parms.SearchExpressionType = SearchExpressionType.PlainText;

    //Search with the parameters
    FileSearchLogic logic = new FileSearchLogic();
    List<string> results = logic.SearchFiles(parms);

    foreach (var filePath in results)
    {
        Console.WriteLine(filePath);
    }

 

Getting a list of locations in a file which contain the matching text

    //Set the file to load
    string filePath = @"C:\_git\Compare-Net-Objects\Compare-NET-Objects-Tests\TestClasses\Invoice.cs";

    //What to search in the file
    SearchParms searchParms = new SearchParms();
    searchParms.SearchString = "FirstName";
    searchParms.SearchExpressionType = SearchExpressionType.PlainText;

    //Load the matches for the file
    LoadFileMatchesLogic loadFileMatchesLogic = new LoadFileMatchesLogic();
    LoadFileResult loadFileResult = loadFileMatchesLogic.LoadFileMatches(searchParms, filePath);

    foreach (var matchLocation in loadFileResult.MatchLocations)
    {
    Console.WriteLine($"{matchLocation.MatchText}: Start {matchLocation.StartPosition}, Length {matchLocation.Length}");
    }

 

Creating and Searching an index

    //Setup the search parameters
    SearchParms searchParms = new SearchParms();

    //This is the directory to index
    searchParms.DirectoriesToSearch.Add(@"c:\_git");

    //Include all C# files by wildcard
    searchParms.FilesToInclude.Add("*.cs");
    searchParms.FileIncludeSearchType = FileSearchType.Wildcard;

    //Set the directory to save the index
    searchParms.IndexPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), "FileSearchLibrarySearchIndexExample");

    //Create the index
    IndexLogic indexLogic = new IndexLogic();
    indexLogic.CreateIndexIfItDoesNotExist(searchParms);

    //Specify what to search
    searchParms.SearchString = "public partial class";
    searchParms.SearchExpressionType = SearchExpressionType.PlainText;

    //List the files that are found
    List<string> files = indexLogic.SearchIndex(searchParms);

    foreach (string file in files)
    {
    Console.WriteLine(file);
    }

 

Q: How do I use my license key?

//Trial Mode
FileSearchLogic fileSearchLogic = new FileSearchLogic();

//License Mode
FileSearchLogic fileSearchLogic= new FileSearchLogic("John Smith 10000", "asdf;ljkasdfk==");

//Trial Mode
IndexLogic indexLogic = new IndexLogic();

//License Mode
IndexLogic indexLogic = new IndexLogic("John Smith 10000", "psdfljksfdl==");

//Trial Mode
LoadFileMatchesLogic loadFileMatchesLogic = new LoadFileMatchesLogic();

//License Mode
LoadFileMatchesLogic loadFileMatchesLogic = new LoadFileMatchesLogic("John Smith 10000", "psdfljksfdl==");

Q: How does the licensing work?
A: Each developer that uses the library must have a license. You may distribute your application to end users royalty free. A site license is for all the developers in a single building.

Q: What happens when the trial expires?
A: An exception is thrown, indicating that the trial is expired.

Q: I lost my license key how do I retrieve it?
A: Go to your account

Q: I lost my software how do I retrieve it?
A: Go to downloads

Q: Where can I download the latest version of my software?
A: Click the download tab.

Date Version Description
9/7/2019 1.0 Initial Release.
9/14/2019 1.11 Progress performance improvements. Handling for Unauthorized Access Exceptions.
9/17/2019 1.12 Remove .NET Standard Version since Lucene .NET is not compatible with .NET Standard yet
9/19/2019 1.13 Gold Suite Licensing Support
9/21/2019 1.14 New features: faster indexing, faster searching of indexes, and reduced index size. Adds compatibility with .NET Standard 2.0 and higher, .NET Core 2.0 and higher, Mono 5.4 and higher, Xamarin.iOs 10.14 and higher Xamarin.Mac 3.8 and higher, Xamarin.Android 8.0 and higher, and Universal Windows Platform 10.0.16299 and higher.
11/2/2019 1.14 Defect fixes. New features; added OperationStatus.Cancelled, added progress and complete events for index logic, MaxSearchResults for SearchIndex.
1/13/2021 1.18 Logic was changed to prefer included files over excluded files and included directories over excluded directories.
7/28/2022 1.21 Fix Object Reference Error for Xamarin Forms.
8/8/2022 1.22 Faster directory search logic.
8/25/2022 1.23 New feature: ability to return excluded files and excluded directories.
12/1/2022 1.24 Fix for searching and ignoring comment lines. Also increase performance when ignoring commented lines.
12/8/2022 1.25 Fix for ignoring comments with http:// for C#, Java, JavaScript, and TypeScript.
1/12/2023 1.26 New feature: ability to search .razor files.
8/2/2023 1.28 Fix for excluding directories and files.
8/24/2023 1.29 Change default to allow searching of temp*.*