file - FSNotify 在运行时添加监视目录

标签 file go watch inotify

我真的不知道如何提出这个问题,但就是这样。

我正在使用 fsnotify 来观察一些目录的变化,当一个文件发生变化时,我将变化同步到另一个目录。但我也想将新创建的目录添加到 watch ,但它并没有真正起作用。

这是我的代码:

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)

如何让它观看更多的目录?

最佳答案

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

关于file - FSNotify 在运行时添加监视目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43036659/

相关文章:

Python 字符串作为 Skimage imread 中的文件

java - 如何在android代码中读取和写入用户可访问的目录?

python - 将一个可能很大的文本文件上传到 Python 中的普通 WSGI 服务器

go - 使用Echo时编译错误

go - 如何在 Go 中访问请求特定数据?

python - 观察属性的变化

c# - 双击打开文件c#

concurrency - sync.WaitGroup 不等待

linux - 使用 unix 命令 "watch"的颜色?

javascript - Angular - 无法观察工厂变量