package main import ( "github.com/fsnotify/fsnotify" "log" ) func main() { watcher, err := fsnotify.NewWatcher() if err != nil { log.Fatal(err) } defer watcher.Close() done := make(chan bool) go func() { for { select { case event, ok := <-watcher.Events: log.Println("log event:", event) if !ok { return } if event.Op&fsnotify.Create == fsnotify.Create { log.Println("Created " + event.Name) } case err, ok := <-watcher.Errors: if !ok { return } log.Println("error:", err) // default: // fmt.Println("default") } } }() err = watcher.Add("/tmp/foo") if err != nil { log.Fatal(err) } <-done }