Как закрыть слушатель fs.watch для папки - PullRequest
0 голосов
/ 31 декабря 2018

У меня есть приложение, которое позволяет пользователю непрерывно загружать содержимое локальной папки в папку в облаке.Приложение построено с electron и node.js

Итак, код, с которым мне нужна помощь, таков:

  fs.watch(getHomeDirectory(), (eventname, filename) => {
   upload(
    filename,
    `${getHomeDirectory()}/${filename}`
  );
})

Эта функция вызывается отдельно от прослушивателя событий вкнопка.

Существует функция получения, getHomeDirectory, которая получает каталог пользователя для папки, а затем функция upload, которая загружает файлы, добавленные или измененные в этой папке.

Я хочу, чтобы приложение просто продолжало загружать файлы всякий раз, когда файл добавляется или изменяется в целевой каталог.

Сейчас это работает, но я хочу, чтобы пользователь мог отключить fs.watch, чтобы он прекратил прослушивание папки.

Я обнаружил вопрос переполнения стека: NodeJS: просмотр файла и указание прослушивателя .Однако это касается только fs.watchFile, и когда я попытался сделать то же самое для fs.watch, это не сработало.

Я не знаю, что мне нужно делать.

1 Ответ

0 голосов
/ 31 декабря 2018

fs.watch(...) возвращает экземпляр fs.FSWatcher , который имеет метод .close().Итак, если вы хотите отменить просмотр, вы можете:

const watcher = fs.watch(getHomeDirectory(), (eventname, filename) => {
  // your code here
})

watcher.close()
...