DirectoryWatcher constructor
Creates a new DirectoryWatcher monitoring directory
.
If a native directory watcher is available for this platform, this will use it. Otherwise, it will fall back to a PollingDirectoryWatcher.
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 DirectoryWatcher(String directory, {Duration? pollingDelay}) {
if (FileSystemEntity.isWatchSupported) {
var customWatcher =
createCustomDirectoryWatcher(directory, pollingDelay: pollingDelay);
if (customWatcher != null) return customWatcher;
if (Platform.isLinux) return LinuxDirectoryWatcher(directory);
if (Platform.isMacOS) return MacOSDirectoryWatcher(directory);
if (Platform.isWindows) return WindowsDirectoryWatcher(directory);
}
return PollingDirectoryWatcher(directory, pollingDelay: pollingDelay);
}