DQD.Glob
2.0.0
dotnet add package DQD.Glob --version 2.0.0
NuGet\Install-Package DQD.Glob -Version 2.0.0
<PackageReference Include="DQD.Glob" Version="2.0.0" />
<PackageVersion Include="DQD.Glob" Version="2.0.0" />
<PackageReference Include="DQD.Glob" />
paket add DQD.Glob --version 2.0.0
#r "nuget: DQD.Glob, 2.0.0"
#:package DQD.Glob@2.0.0
#addin nuget:?package=DQD.Glob&version=2.0.0
#tool nuget:?package=DQD.Glob&version=2.0.0
DQD.Glob
A simple .NET filesystem globbing library. "But Microsoft already provides one!" Yes, but can it match directories? 😃
Using
Add a reference to the DQD.Glob
NuGet package, then call methods of the Globber
class:
var pattern = "/home/username/**/*.txt";
var (baseDir, relativePattern) = Globber.SplitPattern(pattern);
foreach (var matchingFile in Globber.GetMatches(baseDir, relativePattern))
if (matchingFile is DirectoryInfo)
Console.WriteLine("Looks like a text file but is actually a directory: ", matchingFile.FullName);
You can create an instance of Globber
to allow multiple tests against the same globbing expression:
var globber = new Globber("**/*.mp3", ignoreCase: true);
foreach (var relativeFilePath in archiveContents)
if (globber.IsMatch(relativeFilePath))
Console.WriteLine("Found an MP3 file: {0}", relativeFilePath);
You can supply multiple expressions to be applied simultaneously:
var globber = new Globber();
globber.AddExpression("**/*.mod", ignoreCase: true);
globber.AddExpression("**/*.xm", ignoreCase: true);
globber.AddExpression("**/*.s3m", ignoreCase: true);
globber.AddExpression("**/*.it", ignoreCase: true);
var modules = globber.GetMatches(modulesDirectory);
Source Code
The repository for this library's source code is found at:
License
The library is provided under the MIT Open Source license. See LICENSE.md
for details.
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net8.0
- No dependencies.
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.