FilePollingWatcher 1.0.1

dotnet add package FilePollingWatcher --version 1.0.1
NuGet\Install-Package FilePollingWatcher -Version 1.0.1
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="FilePollingWatcher" Version="1.0.1" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add FilePollingWatcher --version 1.0.1
#r "nuget: FilePollingWatcher, 1.0.1"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install FilePollingWatcher as a Cake Addin
#addin nuget:?package=FilePollingWatcher&version=1.0.1

// Install FilePollingWatcher as a Cake Tool
#tool nuget:?package=FilePollingWatcher&version=1.0.1

FilePollingWatcher

File system watcher using polling.

Why?

The default file system watcher in .Net is not very reliable. It is based on the underlying OS file system watcher, which is difficult to use correctly. This library provides a simple file system watcher that uses polling to detect changes.

How to install

Install the NuGet package FilePollingWatcher.

How to use

By default the watcher will use these parameters:

  • PollingTime = 10,000 ms
  • IncludeSubdirectories = false
  • Filter = "*"
  • FiltersInverted = false
  • FilePollingWatcherEvent = FilePollingWatcherEvent.All

Basic usage:

FilePollingWatcher fpw = new(FilePollingWatcherEvent.All)
{
    Callback = new Task(events => { /* handle all the files */ }),
    Folder = "my-folder",
    PollingTime = 60000, // 1 minutes
};
fpw.Start();

// later in your code
fpw.Stop();

Advanced usage (using filters):

FilePollingWatcher fpw = new(FilePollingWatcherEvent.All)
{
    Callback = new Task(events => { /* handle all the files */ }),
    Folder = "my-folder",
    PollingTime = 60000, // 1 minutes
    Filters = new Regex[1] {
        new Regex("file_to_skip.json", RegexOptions.Compiled | RegexOptions.CultureInvariant), // Use compiled regex for better performance
    },
};
Product Compatible and additional computed target framework versions.
.NET net6.0 is compatible.  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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • net6.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.

Version Downloads Last updated
1.0.1 723 11/29/2022
1.0.0 296 11/28/2022