如何关闭文件夹的 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 监听器 的相关文章

  • 当用户在引导日期选择器中更改月份时动态更新选项

    我在用着引导日期选择器 https github com uxsolutions bootstrap datepicker我也附加了一个监听器changeMonth https bootstrap datepicker readthedoc
  • 生成两个日期内的随机日期数组的优雅方法

    我有一个日期选择器 其中显示两个月 我想在每个可见月份中随机选择 3 个日期 date datepicker minDate new Date dateFormat DD MM d yy constrainInput true before
  • 左侧导航菜单上部隐藏

    当滚动到页面最底部时 左侧导航菜单的顶部将被隐藏 The image before scrolling is shown below 滚动后的效果如下图 我不确定此问题的确切原因 因此我将不胜感激任何有关识别和解决该问题的建议或帮助 为了确
  • 在trim()之后获取字符串的最后一个字符不起作用

    如何从字符串中删除空格 以获得最后一个字符 const email abc const emailWhiteSpace abc console log email trim email length 1 gt console log ema
  • 通过字符串键/路径生成嵌套对象结构

    我想做一个名为createAssociativeArray它将接收两个参数 string and object 像这样 function createAssociativeArray string object 最后一项string应该得到
  • nvm 与 npm 配置“前缀”选项不兼容:

    我正在尝试运行另一个 NodeJS 版本nvm但出现此错误 nvm use v4 2 4 nvm is not compatible with the npm config prefix option currently set to Us
  • 身体动画不流畅

    下面代码中的 spaceShip 在开始按住任何箭头键时移动并不顺利 它移动一步 冻结一瞬间 然后 平稳 地移动 怎样才能让它从一开始就顺利运转 而不是 冻结 My code
  • 谷歌云功能发送重复通知

    我有一个发送主题通知的 gcf 我从管理 Android 应用程序触发该功能 一切都按预期工作 但突然该函数发送通知两次 有时三次 谷歌云上的函数日志显示该函数已发送一条通知 它只打印一行 定制发送成功 但 Android 应用程序会收到多
  • 如何在 select2 下拉列表中换行?

    我正在使用 select 2 下拉菜单 然后在其内容中显示一些长句子 我想在句子的正确位置添加换行符 但下拉菜单是自动调整的 For example the content of the dropdown right now looks l
  • 颜色逻辑算法

    我们正在构建一个体育应用程序 并希望将团队颜色融入到应用程序的各个部分 现在 每个团队都可以使用几种不同的颜色来表示 我想做的是执行检查以验证两个团队颜色是否在彼此一定的范围内 这样我就不会显示两个相似的颜色 因此 如果团队 1 的主要团队
  • 先按行再按列布局 div

    我有一个容器div and 3 div里面如下 div div 1 div div 2 div div 3 div div 不知道每一个的内容div内部 但它们的高度和宽度是可变的 集装箱的高度由最高的决定div inside 我想展示这些
  • 使用 JS 在 Angular 中创建删除按钮的确认警报

    我有一个带有删除按钮的表单 我想创建一个单击删除按钮时弹出的确认框 删除按钮当前有效 我在 javascript 中尝试了一些方法 但没有成功 我正在使用角度 这是最好的方法吗 另外 有谁知道这方面的任何例子 我还没有找到任何有效的例子 d
  • NodeJS Express Windows 最大连接数设置

    在哪里设置nodejs的最大连接数 用于使用express get 在 Windows 10 中 与linux中的最大文件 描述符 设置有关吗 有该设置的 Windows 版本吗 最好是在nodejs中进行设置 以便在迁移到unix时兼容
  • 卸载 React 时删除事件监听器

    我有更高阶的组件 反应如下 export default function InnerComponent class InfiniteScrolling extends React Component constructor props s
  • Angular - 如何从 DOM 中删除我使用过 $compile 的元素?

    我需要的是两个 ng views 的功能 因为我不能 我想更改某些内容的innerHTML 并编译它 我遇到的问题是 当我再次更改内容时 我可以编译 但是 Angular 是否会自行删除绑定 或者我必须手动执行此操作 如果是这样 怎么办 编
  • 在 contenteditable div 中选择范围

    我有一个contenteditablediv 和其中的一些段落 这是我的代码 div style border solid 1px black width 300px height 300px div Hello world div div
  • 如何修改每个JSON对象javascript

    我想修改里面的每个 JSON 值cooldown object cooldown user 1 This user2 0 This 在 Javascript 中使用 for 语句 我研究了好几个小时 只找到了内部的 blocks Edit
  • 如何在react-bootstrap中禁用表单提交的

    在下面的代码片段中 我有许多文本类型的输入表单 如果用户点击 我似乎会得到相同的合成事件 就像他们按下提交按钮一样 我想忽略作为表单提交 只允许一个人按下 提交 按钮 我删除了一些表单组以减少示例 在所有情况下 按钮或 ENTER 键 e
  • 如何更改 Google Maps v3 API for Directions 中的开始和结束标记图像

    我使用 DirectionsRender 绘制了一条路线 但我不知道如何用我自己的标记替换通用的 Google 标记 我知道并在正常的谷歌地图情况下使用它 但发现很难用开始和结束的方向标记来做到这一点 如果这是一个愚蠢的问题 感谢您的任何建
  • 可以在初始 DOM 解析期间/之前修改 DOM 吗?

    是否可以在初始 DOM 解析期间或之前修改 DOM 或者我是否必须等到 DOM 被解析和构建之后才能与其交互 更具体地说 是否有可能阻止 DOM 中的脚本元素使用用户脚本 内容脚本或 Chrome 或 Firefox 中的类似脚本运行 在解

随机推荐