inotify не работает на Windows, придется опрашивать в цикле. Если не морочиться с hash, то можно использовать просто время модификации. Что нибудь вроде
ReportChan := make(chan os.FileInfo)
go func(inspectdir string) {
for range time.Tick(time.Second) {
if err := filepath.Walk(inspectdir, func(path string, info os.FileInfo, err error) error {
if err != nil {
return err
}
if time.Now().Sub(info.ModTime()) < time.Second {
ReportChan <- info
}
return nil
}); err != nil {
log.Log(err.Error()) //do something with err
}
}
}("/dir/to/inspect")
for modifiedFile : = range <-ReportChan{
//do something with modifiedFile
}