VGrabko
@VGrabko
Golang, Php, Js

Есть ли библиотека?

Мне надо следить за файлами в определённой директории. Если дам что-то изменилось/добавилось/удалилось мне необходимо запустить функцию. Я думаю что такие библиотеки есть точно. Если нет то есть ли библиотека дабы получить время последнего обновления (а вызов функции я прикручу сам уже). Просто не хочу велосипедить (хотя и работы на час-два)
  • Вопрос задан
  • 195 просмотров
Решения вопроса 2
sim3x
@sim3x
https://godoc.org/golang.org/x/exp/inotify

или считать хеши от файлов и сохранять их в файл
Ответ написан
uvelichitel
@uvelichitel Куратор тега Go
habrahabr.ru/users/uvelichitel
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
}
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы