我有一个应用程序,允许用户将本地文件夹的内容连续上传到云中的文件夹。该应用程序是使用electron
和node.js
所以我需要帮助的代码是这样:
fs.watch(getHomeDirectory(), (eventname, filename) => {
upload(
filename,
`${getHomeDirectory()}/${filename}`
);
})
此功能被称为按钮上的事件侦听器的一部分。
有一个getHomeDirectory
的getter函数,用于获取文件夹的用户目录,然后是upload
函数,用于上载在该文件夹中添加或更改的文件。
我想要它,以便每当文件添加到目标目录或将文件更改到目标目录时,应用程序都将继续上传文件。
现在可以使用了,但是我希望用户能够关闭fs.watch
,以便他们停止收听文件夹。
我发现了这个堆栈溢出问题:NodeJS: unwatching a file and specifying a listener。但是,这仅处理fs.watchFile
,而当我尝试对fs.watch
进行相同操作时,此方法将无效。
我不知道该怎么办。
答案 0 :(得分:2)
fs.watch(...)
返回fs.FSWatcher的实例,该实例具有.close()
方法。因此,如果您想取消监视,可以:
const watcher = fs.watch(getHomeDirectory(), (eventname, filename) => {
// your code here
})
watcher.close()