1
0
Fork 0
mirror of https://github.com/denoland/deno.git synced 2024-11-29 16:30:56 -05:00
denoland-deno/docs/examples/file_system_events.md

41 lines
1.1 KiB
Markdown
Raw Normal View History

2020-09-12 08:03:18 -04:00
# File system events
2020-09-12 08:03:18 -04:00
## Concepts
- Use [Deno.watchFs](https://doc.deno.land/builtin/stable#Deno.watchFs) to watch
for file system events.
- Results may vary between operating systems.
2020-09-12 08:03:18 -04:00
## Example
To poll for file system events in the current directory:
```ts
2020-09-12 08:03:18 -04:00
/**
* watcher.ts
*/
const watcher = Deno.watchFs(".");
for await (const event of watcher) {
console.log(">>>> event", event);
2020-09-12 08:03:18 -04:00
// Example event: { kind: "create", paths: [ "/home/alice/deno/foo.txt" ] }
}
```
2020-09-12 08:03:18 -04:00
Run with:
```shell
deno run --allow-read watcher.ts
```
Now try adding, removing and modifying files in the same directory as
`watcher.ts`.
Note that the exact ordering of the events can vary between operating systems.
This feature uses different syscalls depending on the platform:
2020-09-12 08:03:18 -04:00
- Linux: [inotify](https://man7.org/linux/man-pages/man7/inotify.7.html)
- macOS:
[FSEvents](https://developer.apple.com/library/archive/documentation/Darwin/Conceptual/FSEvents_ProgGuide/Introduction/Introduction.html)
- Windows:
[ReadDirectoryChangesW](https://docs.microsoft.com/en-us/windows/win32/api/winbase/nf-winbase-readdirectorychangesw)