如何关闭文件夹的 fs.watch 监听器

2024-01-06

我有一个应用程序,允许用户连续将本地文件夹的内容上传到云中的文件夹。该应用程序是用构建的electron and node.js

所以我需要帮助的代码是这样的:

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

该函数作为按钮上的事件侦听器的一部分被调用。

有一个吸气剂,getHomeDirectory,获取文件夹的用户目录的函数,然后upload上传在该文件夹中添加或更改的文件的功能。

我希望这样,只要将文件添加或更改到目标目录中,应用程序就可以继续上传文件。

现在它可以工作,但我希望用户能够关闭fs.watch所以他们停止收听该文件夹。

我发现了这个堆栈溢出问题:NodeJS:取消监视文件并指定侦听器 https://stackoverflow.com/questions/12550222/nodejs-unwatching-a-file-and-specifying-a-listener。然而这仅涉及fs.watchFile当我尝试做同样的事情时fs.watch它不起作用。

我不知道我需要做什么。


fs.watch(...)返回一个实例fs.FSWatcher https://nodejs.org/docs/latest/api/fs.html#fs_class_fs_fswatcher,其中有一个.close()方法。因此,如果您想取消观看,您可以:

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

然后,当您完成观察者后,您可以调用:

watcher.close()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何关闭文件夹的 fs.watch 监听器 的相关文章

随机推荐