FileWatcher constructor

FileWatcher(
  1. String file, {
  2. Duration? pollingDelay,
})

Creates a new FileWatcher monitoring file.

If a native file watcher is available for this platform, this will use it. Otherwise, it will fall back to a PollingFileWatcher. Notably, native file watching is not supported on Windows.

If pollingDelay is passed, it specifies the amount of time the watcher will pause between successive polls of the directory contents. Making this shorter will give more immediate feedback at the expense of doing more IO and higher CPU usage. Defaults to one second. Ignored for non-polling watchers.

Implementation

factory FileWatcher(String file, {Duration? pollingDelay}) {
  var customWatcher =
      createCustomFileWatcher(file, pollingDelay: pollingDelay);
  if (customWatcher != null) return customWatcher;

  // [File.watch] doesn't work on Windows, but
  // [FileSystemEntity.isWatchSupported] is still true because directory
  // watching does work.
  if (FileSystemEntity.isWatchSupported && !Platform.isWindows) {
    return NativeFileWatcher(file);
  }
  return PollingFileWatcher(file, pollingDelay: pollingDelay);
}