CyclicalFileWatcher 0.17.0
dotnet add package CyclicalFileWatcher --version 0.17.0
NuGet\Install-Package CyclicalFileWatcher -Version 0.17.0
<PackageReference Include="CyclicalFileWatcher" Version="0.17.0" />
<PackageVersion Include="CyclicalFileWatcher" Version="0.17.0" />
<PackageReference Include="CyclicalFileWatcher" />
paket add CyclicalFileWatcher --version 0.17.0
#r "nuget: CyclicalFileWatcher, 0.17.0"
#:package CyclicalFileWatcher@0.17.0
#addin nuget:?package=CyclicalFileWatcher&version=0.17.0
#tool nuget:?package=CyclicalFileWatcher&version=0.17.0
<div align="center">
CyclicalFileWatcher <br> 😼
A library for cyclical asynchronous file watching with subscription support.
</div>
Why CyclicalFileWatcher
Unlike another file watching solutions that rely on OS-level tools or native file system event hooks, CyclicalFileWatcher uses a simple polling mechanism to detect changes.
This approach:
- Works consistently across platforms and environments (e.g. Docker, network drives, cloud volumes).
- Requires no external dependencies, system utilities, or file system support.
- Gives you full control over polling intervals and error handling.
It’s ideal for scenarios where reliability and isolation from the underlying OS are more important than real-time change detection.
Usage
var fileWatcher = new CyclicalFileWatcher<FileObject>(configuration);
await fileWatcher.WatchAsync(parameters, cancellationToken);
await fileWatcher.SubscribeAsync(filePath, async _ =>
{
Console.WriteLine("Subscription action executed");
}, cancellationToken);
var latestFile = await fileWatcher.GetLatestAsync(filePath, cancellationToken);
See the full example in src/CyclicalFileWatcher.Test/Program.cs
License
Released under MIT by @EvgenyHalzov.
- You can freely modify and reuse.
- The original license must be included with copies of this software.
- Please link back to this repo if you use a significant portion the source code.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. 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. |
| .NET Core | netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.1 is compatible. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.1
- Nito.AsyncEx (>= 5.1.2)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 0.17.0 | 378 | 6/10/2025 |
| 0.16.0 | 247 | 6/8/2025 |
| 0.15.0 | 272 | 6/8/2025 |
| 0.14.0 | 256 | 6/8/2025 |
| 0.13.0 | 200 | 5/19/2025 |
| 0.12.0 | 188 | 5/19/2025 |
| 0.11.0 | 194 | 5/18/2025 |
| 0.10.0 | 188 | 5/18/2025 |
| 0.9.0 | 201 | 5/18/2025 |
| 0.8.0 | 210 | 5/6/2025 |
| 0.7.0 | 147 | 4/27/2025 |
| 0.6.0 | 165 | 4/26/2025 |
| 0.5.0 | 159 | 4/25/2025 |
| 0.4.0 | 217 | 4/21/2025 |
| 0.3.0 | 586 | 3/26/2025 |
| 0.2.0 | 526 | 3/26/2025 |
| 0.1.0 | 524 | 3/26/2025 |