Cross platform, works on:
Example:
package main import ( "log" "github.com/howeyc/fsnotify" ) func main() { watcher, err := fsnotify.NewWatcher() if err != nil { log.Fatal(err) } done := make(chan bool) // Process events go func() { for { select { case ev := <-watcher.Event: log.Println("event:", ev) case err := <-watcher.Error: log.Println("error:", err) } } }() err = watcher.Watch("testDir") if err != nil { log.Fatal(err) } <-done /* ... do stuff ... */ watcher.Close() }
For each event:
Notes: