问题标签 [file-watcher]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
75 浏览

javascript - 在根目录上设置 Gulp 文件监视程序

/**/*.less如果我在我的项目的根文件夹上而不是在包含 .less 文件的文件夹上设置一个 gulp 观察程序,这是一个好主意吗?根文件夹可能包含大量文件(node_modules、CMS 数据等)。

好处是可以灵活地放置 less 文件夹,而无需更改配置中的任何路径,目标是完全消除配置。

另一种方法是从根开始搜索最低的共同祖先,但我认为这是一项艰巨的任务。

0 投票
0 回答
351 浏览

node.js - 如何稳健地重新启动文件观察器?

我正在监视一个500GB - 1TB 的大目录,其中包含一个填充我的数据库的文件监视服务。在初始扫描期间,启动扫描和原生观看事件(添加文件、添加目录),甚至没有任何后处理(元数据、缩略图、数据库检查)可能需要大约 2-3 小时才能完成

当观察者重新启动(例如崩溃或更新)时,它必须重做初始扫描,在此期间我有两个选择:

  1. 全面扫描- 再次处理所有内容

    • 观察者将再次查看所有文件数据并将其与数据库条目进行比较。
    • 如果发现任何不同的或新的,数据库将被更新。
    • 速度:非常慢(约 5-6 小时)
    • 丢失的数据:无,最可靠

.

  1. 不经意扫描- 忽略初始扫描的事件

    • 观察者将正确初始化观察
    • 但无法在重新启动开始和初始扫描完成之间注册任何新文件或更改
    • 速度:大约是完整扫描的一半时间(约 2-3 小时)
    • 丢失的数据:很多,不是很可靠(除非在没有变化的晚上运行)

.

此外,我考虑了第三种选择,但不确定它是否可行:

  1. 备份还原

    • 在运行期间,使用第二个进程来备份观察者的数据和任何负责观察的对象
    • 重新启动时,不要重新运行初始扫描,而是使用备份过程中存储的数据恢复观看
    • 然后继续正常工作
    • 速度:重启观察者进程需要几秒钟
    • 丢失的数据:可能没有,除非数据更改恰好在重启的几秒钟内发生(对我的情况来说已经足够了)

.

我想知道您是否曾经尝试过观察者服务的备份恢复?或者你对此有什么想法?

.

(在我的例子中,观察者使用 node.js、chokidarfs.watchFSWatcher和一些原生 C fs_event_wrap

0 投票
3 回答
557 浏览

java - 检测将被修改的文件

我有一个大目录,其中包含由单独的系统以不同的时间间隔修改的文件。我在这个目录上运行一个观察者来检测哪些文件被修改了。

我想知道当系统访问文件进行修改时是否会发生某种触发器。如果是这样,以下将适用:

使用 Java,是否可以检测哪些文件将被修改并在此之前进行临时备份?
或者,是否可以将新修改的文​​件与之前的版本进行比较?

在这种情况下,不可能对每个文件都进行备份,因为文件很大而且数量很多。

例子:

我有四个文件:

b.xml 添加了一个新部分。

是否可以将新创建​​的部分复制到 d.log 中?

0 投票
1 回答
292 浏览

javascript - Phpstorm 无法部署/上传由 JS & CSS YUI 压缩器自动生成的文件

我使用 PhpStorm 10.0.3(当前最新)。从 8.0 版开始,我在Settings > Tools下添加了两个 YUI File Watchers

YUI 压缩器 JS 和 YUI 压缩器 CSS

在我读过的任何地方都推荐了文件观察程序设置。例如,JS Compressor 设置如下图所示:

PhpStorm YUI JS 文件观察器设置

还有 CSS Compressor 设置...

PhpStorm YUI CSS 文件观察器设置

对于我创建的所有项目,压缩器本身都按预期工作。但是,有些项目似乎没有检测到这些压缩器自动生成的新文件,在我的例子中是 .min.js.min.css分别。这两个文件观察器的每个设置在项目之间似乎都是相同的。具体来说,在 YUI 运行并相应地适当压缩文件后,在某些项目中,只有未压缩的文件被检测为已更改,因此包含在部署自动上传中(显式保存时)。压缩文件根本不上传。我不得不选择特定文件并手动上传。当然,这是令人沮丧和乏味的。

文件部署选项如下...

phpstorm 文件部署选项

怎么了???为什么我在压缩完成后重复CTR+S后,不能自动上传自动生成的文件???

0 投票
1 回答
87 浏览

c# - 侧面多线程中的 SystemFileWatcher 不起作用

我正在尝试观察连接到我的 PC 的所有 USB 存储设备中的文件发生的变化。为此,我编写了 ac# 控制台应用程序,但它仅提供一个空白屏幕并不能正常工作。请有人帮我这样做

班级

0 投票
0 回答
334 浏览

java - FileWatchDog 可以监视 AWS S3 存储桶中的文件吗

我是 AWS 的新手,所以我想知道 FileWatchDog 实例是否可以直接读取 AWS S3 存储桶文件上的更改,或者我是否需要制作该文件的本地副本,如果我必须制作该文件的本地副本,那么如何我要检查 S3 存储桶文件中的更改吗?

0 投票
1 回答
151 浏览

file - 通过watch_file观察到文件更改时如何获取文件名

我目前面临一个我不知道如何解决的问题。我得到了以下 Julia 代码:

所以这应该让我得到名为“test”的目录中的所有文件更改。至少在窗户上。

现在一切都很好,而且它有点工作,至少用于创建文件或将文件移动到该目录。这是我得到的一个例子:

但是当我删除或重命名该文件时,我没有得到删除或重命名的文件的文件名。

即使文件被删除或重命名,是否有其他方法/函数可以获取文件名?或者更好的是,一种存档并且跨平台兼容的方式?任何帮助表示赞赏。

编辑:如果你能给我一个支持递归监控的替代方案,那就更好了。

0 投票
1 回答
254 浏览

vagrant - 处理 Vagrant 共享文件夹中的文件观察程序

我正在使用 Vagrant 共享文件夹来开发一个使用 babel 作为文件观察器的项目。

但是,最有可能的是,由于主机和来宾机器之间的时间差异,每当我更改文件时,观察者都看不到更改,也不会重新编译修改后的资产,从而使整个开发环境变得毫无用处。

我尝试将同步策略更改为 RSync,但它仅在文件 A 更改为 A' 时才有效,但当我将 B 更改为 B' 时它也有效,但将文件 A' 恢复为 A。

是否有任何工作流程允许我在共享文件夹中开发文件,仍然在来宾机器内启动文件观察器挂钩?

0 投票
2 回答
2141 浏览

powershell - 永久监控特定文件夹中文件创建的最有效和最可靠的方法

每次创建文件时,我都需要监视文件夹并执行一些操作。我有 2 个解决方案 - 一个使用 WMI,我可以使用此过滤器(从.MOF文件或注册永久 MWI 事件绑定的 Powershell 脚本调用)每秒轮询文件夹:

示例脚本:

示例 MOF 文件:

这似乎是一种很好的方法,因为我可以自己设置间隔,并且使用 WMI 对我来说总是很安全,因为它本质上是 Windows 中的内置解决方案。

另一种方法是编写一个脚本,例如:

然后可以作为计划任务在系统上运行。

我的问题是 - 这样做的最佳方法是什么?在我展示的 2 个选项中,其中一个在系统资源或潜在错误方面本质上更有效吗?

还有其他我没有考虑过的方法吗?


Jisaak 添加了一个使用System.IO.FilesystemWatcher. 不幸的是,这对我的目的来说并不理想,因为这仅在执行它的外壳打开时才有效,而我想要一个更永久的解决方案(更新了问题的标题以反映这一点)

0 投票
0 回答
82 浏览

phpstorm - 为什么有些文件不使用文件观察器观察 [PhpStorm 2016.1]

我在我的 PhpStorm 2016.1 上设置了一个文件观察器,但我遇到了一个奇怪的问题。

有些文件被观看,有些则没有。有时取决于他们的位置,有时取决于他们的类型。我只是无法确定某些文件没有被观看的模式。

我只想在每次修改文件时执行一个 shell 脚本。

你有没有在 PhpStorm 上遇到过这种问题,或者你知道我应该在哪里多挖掘一点吗?