File system notification for Go
Switch branches/tags
Nothing to show
Pull request Compare This branch is 118 commits behind howeyc:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
.travis.yml
LICENSE
README.md
example_test.go
fsnotify.go
fsnotify_bsd.go
fsnotify_linux.go
fsnotify_symlink_test.go
fsnotify_test.go
fsnotify_windows.go

README.md

File system notifications for Go

GoDoc

Cross platform, works on:

  • Windows
  • Linux
  • BSD
  • OSX

Example:

    watcher, err := fsnotify.NewWatcher()
    if err != nil {
        log.Fatal(err)
    }

    // 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("/tmp")
    if err != nil {
        log.Fatal(err)
    }

    /* ... do stuff ... */
    watcher.Close()

For each event:

  • Name
  • IsCreate()
  • IsDelete()
  • IsModify()
  • IsRename()

Notes:

  • When a file is renamed to another directory is it still being watched?
    • No (it shouldn't be, unless you are watching where it was moved to).
  • When I watch a directory, are all subdirectories watched as well?
    • No, you must add watches for any directory you want to watch.
  • Do I have to watch the Error and Event channels in a separate goroutine?
    • As of now, yes. Looking into making this single-thread friendly.

Build Status