Skip to content

Latest commit

 

History

History
41 lines (31 loc) · 1.82 KB

README.md

File metadata and controls

41 lines (31 loc) · 1.82 KB

Glob.cs

Version Build status codecov.io netstandard2.0 net461

Single-source-file path globbing for .NET (netstandard2.0 and net461).

Features

  • Choose case sensitivity
  • Optionally match only directories
  • Injectable file system implementation for easy testing (uses System.IO.Abstractions)
  • Can cancel long running match
  • Throw or continue on file system errors
  • Optionally log errors to supplied log implementation
  • Lazy tree traversal
  • Option to limit depth of ** expansion

Syntax

  • ? matches a single character
  • * matches zero or more characters
  • ** matches zero or more recursive directories, e.g. a\**\x matches a\x, a\b\x, a\b\c\x, etc.
  • [...] matches a set of characters, syntax is the same as character groups in Regex.
  • {group1,group2,...} matches any of the pattern groups. Groups can contain groups and patterns, e.g. {a\b,{c,d}*}.

Usage

Install the NuGet package Glob.cs. Then:

var dlls = Glob.Expand(@"c:\windows\system32\**\*.dll");