Single-source-file path globbing for .NET (netstandard2.0 and net461).
- 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
?matches a single character*matches zero or more characters**matches zero or more recursive directories, e.g.a\**\xmatchesa\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}*}.
Install the NuGet package Glob.cs. Then:
var dlls = Glob.Expand(@"c:\windows\system32\**\*.dll");