https://github.com/ju2pom/EverythingNetDemo
EverythingNet is a C# library that wraps the great library from voidtools name SearchEverything. This library let you search for files, folders and more incredibly fast. For more information jump to the official page
EverythingNet provides a simple .NET api to search for file using indexing. The wrapped library doesn't not rely on Windows Search but on a specific service which is super light and super fast.
The library exposes a fluent API that ease access to specific search functions.
- Logic
Everything everything = new Everything();
var searchResult = everything.Search()
.Name("Report")
.Or()
.Name("Results");
Everything everything = new Everything();
var searchResult = everything.Search()
.Not.Name("temp")
.And()
.Not.Name("tmp");
- Name
Everything everything = new Everything();
var searchResult = everything.Search()
.Name()
.StartWith("progra");
Everything everything = new Everything();
var searchResult = everything.Search()
.Name()
.EndstWith("result");
Everything everything = new Everything();
var searchResult = everything
.Name()
.Extensions(new string[] {"csproj", "cs", "xaml"});
- Date
Everything everything = new Everything();
var searchResult = everything.Search()
.ModificationDate() // Can be AccessDate, RunDate, CreationDate
.Equal(Dates.Today); // Can be many many values !
Everything everything = new Everything();
var searchResult = everything.Search()
.CreationDate()
.Before(Dates.Yesterday);
Everything everything = new Everything();
var searchResult = everything.Search()
.CreationDate()
.Equal(Dates.ThisMonth);
Everything everything = new Everything();
var searchResult = everything.Search()
.CreationDate()
.Last(Dates.Week);
Everything everything = new Everything();
var searchResult = everything.Search()
.AccessDate()
.Between(Dates.LastWeek, Dates.ThisWeek);
- File size
Everything everything = new Everything();
var searchResult = everything.Search()
.Size()
.Equal(100); // By default the unit is kb
Everything everything = new Everything();
var searchResult = everything.Search()
.Size()
.GreaterThan(100, SizeUnit.Mb); // Unit is optional
Everything everything = new Everything();
var searchResult = everything.Search()
.Size()
.Between(100, 200, SizeUnit.Mb); // Unit is optional
- Music files
Everything everything = new Everything();
var searchResult = everything.Search()
.Music()
.Artist("RadioHead");
Everything everything = new Everything();
var searchResult = everything.Search()
.Music()
.Genre("Rock");
Everything everything = new Everything();
var searchResult = everything.Search()
.Music()
.Artist("RadioHead")
.Album("Pablo Honey")
.Track().Between(1, 3);
- File info
Everything everything = new Everything();
var searchResult = everything
.File()
.Only();
Everything everything = new Everything();
var searchResult = everything
.File()
.Audio(); // Can be zip, video, picture, executable, document
Everything everything = new Everything();
var searchResult = everything
.File()
.Extension("csproj");
The fluent API provides specific methods to easily handle
- thread safety
- logical operators
- file size
- picture files (standard format and properties)
- music files (ID3 Tags)
- file dates
- file content (soon)