Метод watch
Stream<FileSystemEvent> watch(Начать наблюдение за FileSystemEntity для отслеживания изменений.
Реализация использует платформозависимые основанные на событиях API для получения уведомлений о файловой системе, поэтому поведение зависит от платформы.
-
Windows: ИспользуетReadDirectoryChangesW. Реализация поддерживает только отслеживание каталогов. Рекурсивное отслеживание поддерживается. -
Linux: Используетinotify. Реализация поддерживает отслеживание как файлов, так и каталогов. Рекурсивное отслеживание не поддерживается. Примечание: при отслеживании файлов напрямую события удаления могут не происходить как ожидается. -
OS X: ИспользуетFSEvents. Реализация поддерживает отслеживание как файлов, так и каталогов. Рекурсивное отслеживание поддерживается.
Система начнёт прослушивать события, как только возвращаемый Stream начнёт прослушиваться, а не когда вызывается watch.
Возвращаемое значение — это бесконечный транслируемый Stream, который останавливается только в одном из следующих случаев:
- Возвращаемый Stream отменён, например, вызовом
cancelнаStreamSubscription. - Отслеживаемый FileSystemEntity удалён.
Используйте events для указания событий, за которыми нужно наблюдать. Константы в FileSystemEvent можно объединять с помощью оператора «или» для комбинирования событий. По умолчанию используется FileSystemEvent.ALL.
Событие перемещения может быть сообщено как отдельные события удаления и создания.
Исходный код
Stream<FileSystemEvent> watch(
{int events: FileSystemEvent.ALL, bool recursive: false}) =>
_FileSystemWatcher._watch(
_trimTrailingPathSeparators(path), events, recursive);
© 2012 the Dart project authors
Licensed under the Creative Commons Attribution-ShareAlike License v4.0.
https://api.dartlang.org/stable/1.24.3/dart-io/FileSystemEntity/watch.html