FileFlower.Core
1.0.1
dotnet add package FileFlower.Core --version 1.0.1
NuGet\Install-Package FileFlower.Core -Version 1.0.1
<PackageReference Include="FileFlower.Core" Version="1.0.1" />
<PackageVersion Include="FileFlower.Core" Version="1.0.1" />
<PackageReference Include="FileFlower.Core" />
paket add FileFlower.Core --version 1.0.1
#r "nuget: FileFlower.Core, 1.0.1"
#:package FileFlower.Core@1.0.1
#addin nuget:?package=FileFlower.Core&version=1.0.1
#tool nuget:?package=FileFlower.Core&version=1.0.1
FileFlower
Overview
FileFlower is a lightweight, flexible .NET library that enables event-driven, pipeline-based processing of file system changes. Designed for building modular workflows around directory watching, FileFlower lets you:
- React to file creation, modification, deletion events
- Filter and route files by patterns and extensions
- Define processing pipelines with pre- and post-steps
- Easily chain multiple processors in a clean, reusable way
FileFlower is ideal for building file ingestion services, automated workflows, and data pipelines that work with file systems in a reactive and maintainable manner.
Features
- Monitor directories and subdirectories for file changes
- Filter files by pattern, extension, or custom rules
- Define composable pipeline steps for processing files
- Support for error handling, retries, and archiving
- Minimal dependencies, cross-platform (.NET 8+)
Getting Started
builder.Services.AddFileWatchers(configuration =>
{
configuration.ForDirectory("./incoming/", watcher =>
{
watcher.WhenResourceCreated(rule => rule.Filter("*.txt").Filter("*.csv").WithOrLogic())
.AddStep(async context =>
{
Console.WriteLine($"CLIENT | Processed txt or csv: {context.FileInfo.FullName}");
});
});
configuration.ForDirectory("./incoming_v2/", watcher =>
{
watcher.WhenResourceCreated(rule => rule.Filter("*.txt").Filter("*.csv").WithOrLogic())
.AddStep(async context =>
{
Console.WriteLine($"CLIENT | Processed txt or csv: {context.FileInfo.FullName}");
});
watcher.WhenResourceDeleted(rule => rule.Filter("*.txt"))
.AddStep(async context =>
{
Console.WriteLine($"CLIENT | Processed txt or csv (deleted): {context.FileInfo.FullName}");
});
});
}).AddFileWatcherHostedService();
How to Create and Deploy a NuGet Package
Follow these steps to create, version, and deploy your NuGet package for FileFlower projects:
Add your code changes
Make all necessary code updates or feature additions in your local branch.Increase the NuGet version
Update the version number inside theDirectory.Build.props
file to reflect your new release.Update the changelog
Add a version description to theCHANGELOG.md
file under each NuGet project, documenting your changes.(Optional) Update the README
Modify theREADME.md
under each NuGet project if you want to update usage instructions or examples.Create a pull request
Push your changes and create a pull request targeting themaster
branch.Merge and tag
After your PR is merged tomaster
, create a Git tag on GitHub corresponding to the new NuGet package version (e.g.,v1.2.3
).Wait for deployment
The CI/CD pipeline will automatically build and deploy the package to the NuGet feed. Wait until the package is available on nuget.org.Update the NuGet API key (every 3 months)
For security, update the NuGet API key periodically (once every three months) in your CI/CD environment to maintain deployment access.
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 is compatible. 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
- Microsoft.Extensions.Logging.Abstractions (>= 9.0.6)
-
net9.0
- Microsoft.Extensions.Logging.Abstractions (>= 9.0.6)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on FileFlower.Core:
Package | Downloads |
---|---|
FileFlower.DependencyInjection
A flexible event-driven pipeline for file system changes |
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last Updated |
---|---|---|
1.0.1 | 138 | 6/25/2025 |
1.0.0 | 135 | 6/25/2025 |
0.0.1-rc.1 | 113 | 6/24/2025 |
0.0.1-alpha.6 | 68 | 6/20/2025 |
0.0.1-alpha.5 | 62 | 6/20/2025 |
0.0.1-alpha.4 | 67 | 6/20/2025 |
0.0.1-alpha.3 | 62 | 6/20/2025 |
0.0.1-alpha.2 | 69 | 6/20/2025 |
0.0.1-alpha.1 | 67 | 6/20/2025 |