commit | 441bbc86b167f3c1f4786afae9931403b99fdacf | [log] [tgz] |
---|---|---|
author | Chris Howey <howeyc@gmail.com> | Thu Feb 27 14:46:22 2014 |
committer | Chris Howey <howeyc@gmail.com> | Thu Feb 27 14:46:22 2014 |
tree | 3038f8900106bc2b4c46b9c93f3de17a558d03b6 | |
parent | 9c5eb19c2a353a043651d008b630b2e738d13652 [diff] | |
parent | c2abd72761ca64944bc9f01036430855a7b9995a [diff] |
Merge pull request #92 from gophertown/moving2 add moving notice to readme
Cross platform, works on:
We plan to include os/fsnotify in the Go standard library with a new API.
code.google.com/p/go.exp/fsnotify
(GoDoc) for the latest API under development.github.com/howeyc/fsnotify
(GoDoc) for the stable API.code.google.com/p/go.exp/fsnotify
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:
When a file is moved 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 (a recursive watcher is in the works #56).
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 (see #7)
Why am I receiving multiple events for the same file on OS X?
Spotlight indexing on OS X can result in multiple events (see #62). A temporary workaround is to add your folder(s) to the Spotlight Privacy settings until we have a native FSEvents implementation (see #54).
How many files can be watched at once?
There are OS-specific limits as to how many watches can be created: