本文整理汇总了Golang中github.com/howeyc/fsnotify.Watcher.RemoveWatch方法的典型用法代码示例。如果您正苦于以下问题:Golang Watcher.RemoveWatch方法的具体用法?Golang Watcher.RemoveWatch怎么用?Golang Watcher.RemoveWatch使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类github.com/howeyc/fsnotify.Watcher
的用法示例。
在下文中一共展示了Watcher.RemoveWatch方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: watch
func watch(root string, watcher *fsnotify.Watcher, names chan<- string, done chan<- error) {
if err := filepath.Walk(root, walker(watcher)); err != nil {
// TODO: handle this somehow?
infoPrintf(-1, "Error while walking path %s: %s\n", root, err)
}
for {
select {
case e := <-watcher.Event:
path := strings.TrimPrefix(e.Name, "./")
names <- path
if e.IsCreate() {
if err := filepath.Walk(path, walker(watcher)); err != nil {
// TODO: handle this somehow?
infoPrintf(-1, "Error while walking path %s: %s\n", path, err)
}
}
if e.IsDelete() {
watcher.RemoveWatch(path)
}
case err := <-watcher.Error:
done <- err
return
}
}
}
示例2: processSubdir
func processSubdir(watcher *fsnotify.Watcher, ev *fsnotify.FileEvent) {
if ev.IsModify() {
return
}
if ev.IsDelete() {
log.Println("remove watch", ev.Name)
// FIXME: what to do with err?
watcher.RemoveWatch(ev.Name)
return
}
// FIXME: Lstat or Stat?
// TODO: what to do with err? can we safely ignore?
mode, err := os.Lstat(ev.Name)
if err != nil {
log.Println("error processing subdir:", err.Error())
return
}
if !mode.IsDir() {
return
}
// FIXME: handle renames
if ev.IsCreate() {
log.Println("add watch", ev.Name)
// FIXME: what to do with err?
watcher.Watch(ev.Name)
}
}
示例3: eventHandler
func (self *Launcher) eventHandler(watcher *fsnotify.Watcher) {
var info = map[string]ItemChangedStatus{}
for {
select {
case ev := <-watcher.Event:
name := path.Clean(ev.Name)
basename := path.Base(name)
if basename == "kde4" {
if ev.IsCreate() {
watcher.Watch(name)
} else if ev.IsDelete() {
watcher.RemoveWatch(name)
}
}
matched, _ := path.Match(`[^#.]*.desktop`, basename)
if matched {
go self.itemChangedHandler(ev, name, info)
}
case <-watcher.Error:
}
}
}