FSNotify在运行时添加监视目录

时间:2017-03-27 01:41:27

标签: file go watch inotify

我真的不知道如何制定这个问题,但现在就是这样。

我正在使用fsnotify来查看某些目录以进行更改,当文件发生更改时,我将更改同步到另一个目录。但我想将新创建的目录添加到手表中,但它并没有真正起作用。

这是我的代码:

func Watcher() {
    watcher, err := fsnotify.NewWatcher()
    defer watcher.Close()

    done := make(chan bool)
    go func() {
        for {
            select {
            case event := <-watcher.Events:

                    if file.Mode().IsDir() {
                    err = os.Mkdir(dest, 0755)
                    err = watcher.Add(dest)

            }
        case err := <-watcher.Errors:
            log.Println("error:", err)
        }
    }
    }()

    dirs, err := readLines("dirs")
    for _, el := range dirs {
        err = watcher.Add(el)
    }
    check(err)
    <-done
}

功能更长,但我删除了非重要部分。一切都有效,但err = watcher.Add(dest)除外。

如何让它观看更多目录?

1 个答案:

答案 0 :(得分:0)

它工作得很好,但我得到了一些错误的变量。应该是watcher.Add(event.Name)而不是watcher.Add(dest)