Provides an implementation of Ramstack.FileSystem that applies glob-based filtering rules to determine
which files and directories of the underlying file system to include or exclude.
It relies on the Ramstack.Globbing package for its globbing capabilities.
To install the Ramstack.FileSystem.Globbing NuGet package
in your project, run the following command:
dotnet add package Ramstack.FileSystem.Globbingusing Ramstack.FileSystem.Globbing;
PhysicalFileSystem fileSystem = new PhysicalFileSystem(@"C:\path");
// Include only "*.txt" files and "*.md" files in the "/docs" directory, excluding any "README.md" file
GlobbingFileSystem fs = new GlobbingFileSystem(fileSystem,
patterns: ["**/*.txt", "docs/*.md"],
excludes: ["**/README.md"]);
await foreach (VirtualFile file in fs.GetFilesAsync("/"))
{
Console.WriteLine(file.FullName);
}- Ramstack.FileSystem.Abstractions - Provides a virtual file system abstraction.
- Ramstack.FileSystem.Physical - Provides an implementation based on the local file system.
- Ramstack.FileSystem.Azure - Provides an implementation using Azure Blob storage.
- Ramstack.FileSystem.Amazon - Provides an implementation using Amazon S3 storage.
- Ramstack.FileSystem.Google - Provides an implementation using Google Cloud storage.
- Ramstack.FileSystem.Readonly - Provides a read-only wrapper for the underlying file system.
- Ramstack.FileSystem.Prefixed - Adds a prefix to file paths within the underlying file system.
- Ramstack.FileSystem.Sub - Wraps the underlying file system, restricting access to a specific subpath.
- Ramstack.FileSystem.Adapters - Provides integration with
Microsoft.Extensions.FileProviders. - Ramstack.FileSystem.Composite - Provides an implementation that combines multiple file systems into a single composite file system.
| Version | |
|---|---|
| .NET | 6, 7, 8, 9, 10 |
Bug reports and contributions are welcome.
This package is released as open source under the MIT License. See the LICENSE file for more details.