javascript - 如何关闭文件夹的 fs.watch 监听器
问题描述
我有一个应用程序,允许用户将本地文件夹的内容连续上传到云中的文件夹。该应用程序是用electron
和构建的node.js
所以我需要帮助的代码是这样的:
fs.watch(getHomeDirectory(), (eventname, filename) => {
upload(
filename,
`${getHomeDirectory()}/${filename}`
);
})
此函数作为按钮上的事件侦听器的一部分调用。
有一个 gettergetHomeDirectory
函数,它获取文件夹的用户目录,然后upload
是上传在该文件夹中添加或更改的文件的函数。
我想要它,以便应用程序在将文件添加或更改到目标目录时不断上传文件。
现在它可以工作,但我希望用户能够关闭它,fs.watch
以便他们停止收听该文件夹。
我发现了这个堆栈溢出问题:NodeJS: unwatching a file and specified a listener。然而,这只涉及fs.watchFile
当我尝试做同样的fs.watch
事情时它不起作用。
我不知道我需要做什么。
解决方案
fs.watch(...)
返回一个fs.FSWatcher的实例,它有一个.close()
方法。因此,如果您想取消观看,您可以:
const watcher = fs.watch(getHomeDirectory(), (eventname, filename) => {
// your code here
})
然后,当您完成观察者后,您会调用:
watcher.close()
推荐阅读
- r - R:根据现有数据框的多个条件创建新数据框
- python - 尝试运行烧瓶网络应用程序时出现未定义错误
- javascript - 为什么 0.5 减去 0.4 等于 0.09999999999999998 而不是 0.01?
- c# - 如何在 C#/ML.net 中修复 NaN(非数字)输出
- jolt - 需要 JOLT 规范文件来传输复杂的 JSON
- c - 在 C 中的文本文件中读取并存储 int 之后的 x 字符串
- angular - Karma、Angular 7 和 FontAwesome 问题无法绑定到“icon”,因为它不是“fa-icon”的已知属性
- python-3.x - 找到每个索引的每列的第一个非空出现的最佳方法?
- html - 位置:相对破坏背景剪辑:文本
- javascript - 如何明确设置双向文本的方向性,以便在两种冲突语言一起使用时正确显示?