|
|
@ -144,53 +144,6 @@ func existPath(path string) bool { |
|
|
|
|
|
|
|
//监控目录
|
|
|
|
func (w *Watch) watchDir(dir string) { |
|
|
|
//通过Walk来遍历目录下的所有子目录
|
|
|
|
filepath.WalkDir(dir, func(path string, info fs.DirEntry, err error) error { |
|
|
|
//这里判断是否为目录,只需监控目录即可 目录下的文件也在监控范围内,不需要我们一个一个加
|
|
|
|
|
|
|
|
if err == nil && info.IsDir() { |
|
|
|
path, err := filepath.Abs(path) |
|
|
|
if err != nil { |
|
|
|
return err |
|
|
|
} |
|
|
|
if !isHidden(path) && isOnlyDir(OnlyDirs, path) && !isDelDir(DelDirs, path) { |
|
|
|
err = w.watch.Add(path) |
|
|
|
if err != nil { |
|
|
|
return err |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
return nil |
|
|
|
}) |
|
|
|
|
|
|
|
for _, v := range AddDirs { |
|
|
|
if v != "" && existPath(v) { |
|
|
|
//通过Walk来遍历目录下的所有子目录
|
|
|
|
filepath.WalkDir(v, func(path string, info fs.DirEntry, err error) error { |
|
|
|
//这里判断是否为目录,只需监控目录即可 目录下的文件也在监控范围内,不需要我们一个一个加
|
|
|
|
if err == nil && info.IsDir() { |
|
|
|
path, err := filepath.Abs(path) |
|
|
|
if err != nil { |
|
|
|
return err |
|
|
|
} |
|
|
|
if !isHidden(path) { |
|
|
|
err = w.watch.Add(path) |
|
|
|
if err != nil { |
|
|
|
return err |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
return nil |
|
|
|
}) |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
//for _, v := range AddDirs {
|
|
|
|
// if v != "" && existPath(v) {
|
|
|
|
// w.watch.Add(v)
|
|
|
|
// }
|
|
|
|
//}
|
|
|
|
|
|
|
|
// 启动文件监听goroutine
|
|
|
|
go func() { |
|
|
|
for { |
|
|
@ -243,6 +196,53 @@ func (w *Watch) watchDir(dir string) { |
|
|
|
} |
|
|
|
} |
|
|
|
}() |
|
|
|
|
|
|
|
//通过Walk来遍历目录下的所有子目录
|
|
|
|
filepath.WalkDir(dir, func(path string, info fs.DirEntry, err error) error { |
|
|
|
//这里判断是否为目录,只需监控目录即可 目录下的文件也在监控范围内,不需要我们一个一个加
|
|
|
|
|
|
|
|
if err == nil && info.IsDir() { |
|
|
|
path, err := filepath.Abs(path) |
|
|
|
if err != nil { |
|
|
|
return err |
|
|
|
} |
|
|
|
if !isHidden(path) && isOnlyDir(OnlyDirs, path) && !isDelDir(DelDirs, path) { |
|
|
|
err = w.watch.Add(path) |
|
|
|
if err != nil { |
|
|
|
return err |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
return nil |
|
|
|
}) |
|
|
|
|
|
|
|
for _, v := range AddDirs { |
|
|
|
if v != "" && existPath(v) { |
|
|
|
//通过Walk来遍历目录下的所有子目录
|
|
|
|
filepath.WalkDir(v, func(path string, info fs.DirEntry, err error) error { |
|
|
|
//这里判断是否为目录,只需监控目录即可 目录下的文件也在监控范围内,不需要我们一个一个加
|
|
|
|
if err == nil && info.IsDir() { |
|
|
|
path, err := filepath.Abs(path) |
|
|
|
if err != nil { |
|
|
|
return err |
|
|
|
} |
|
|
|
if !isHidden(path) { |
|
|
|
err = w.watch.Add(path) |
|
|
|
if err != nil { |
|
|
|
return err |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
return nil |
|
|
|
}) |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
//for _, v := range AddDirs {
|
|
|
|
// if v != "" && existPath(v) {
|
|
|
|
// w.watch.Add(v)
|
|
|
|
// }
|
|
|
|
//}
|
|
|
|
} |
|
|
|
|
|
|
|
//********************************************** port start ************************************************************
|
|
|
@ -307,6 +307,7 @@ func main() { |
|
|
|
OnlyDirs = strings.Split(dirs[1], "|") |
|
|
|
DelDirs = strings.Split(dirs[2], "|") |
|
|
|
watch, _ := fsnotify.NewWatcher() |
|
|
|
defer watch.Close() |
|
|
|
w := Watch{watch: watch} |
|
|
|
w.watchDir("./") |
|
|
|
Read() |
|
|
|