FileFlower.Core
0.0.1-alpha.6
See the version list below for details.
dotnet add package FileFlower.Core --version 0.0.1-alpha.6
NuGet\Install-Package FileFlower.Core -Version 0.0.1-alpha.6
<PackageReference Include="FileFlower.Core" Version="0.0.1-alpha.6" />
<PackageVersion Include="FileFlower.Core" Version="0.0.1-alpha.6" />
<PackageReference Include="FileFlower.Core" />
paket add FileFlower.Core --version 0.0.1-alpha.6
#r "nuget: FileFlower.Core, 0.0.1-alpha.6"
#:package FileFlower.Core@0.0.1-alpha.6
#addin nuget:?package=FileFlower.Core&version=0.0.1-alpha.6&prerelease
#tool nuget:?package=FileFlower.Core&version=0.0.1-alpha.6&prerelease
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
var watcher = new FileWatcherBuilder("~/files");
watcher.WhenResourceCreated(rule => rule.Filter("*.txt").Filter("*.csv").WithOrLogic())
.AddStep(file =>
{
Console.WriteLine($"CLIENT | Processed txt or csv: {file.FullName}");
return Task.CompletedTask;
});
watcher.WhenResourceCreated(rule => rule.Filter("*test*").Filter("*.bat"))
.AddStep(file =>
{
Console.WriteLine($"CLIENT | Processed bat which contains word 'test': {file.FullName}");
return Task.CompletedTask;
});
watcher.WhenResourceCreated(rule => rule.Filter("*.log"))
.AddStep(file =>
{
Console.WriteLine($"CLIENT | Processed log: {file.FullName}");
return Task.CompletedTask;
});
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 | 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. |
-
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 | 139 | 6/25/2025 |
1.0.0 | 137 | 6/25/2025 |
0.0.1-rc.1 | 114 | 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 |