Skip to content

A .fluent NET library for the great Everything Search library from voidtools

License

Notifications You must be signed in to change notification settings

Richasy/EverythingNet

Repository files navigation

Build status Coverage Status NuGet

EverythingNet

Check demo app

https://github.com/ju2pom/EverythingNetDemo

What

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

Why

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.

How

The library exposes a fluent API that ease access to specific search functions.

  1. 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");
  1. 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"});
  1. 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);
  1. 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
  1. 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);
  1. 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");

Roadmap

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)

About

A .fluent NET library for the great Everything Search library from voidtools

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C# 100.0%