问题标签 [file-monitoring]

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 回答
69 浏览

c - 构建文件监控系统

我刚刚开始编程,想用 C 从头开始​​实现一个文件监控系统。

我在 java 中使用过 Watch Service API,但我想学习如何从头开始构建一个。我真的很感激一些帮助和指导。

谢谢。

0 投票
0 回答
128 浏览

swift - NSInputstream 和 EventEndOfStream

所以这是我的问题。程序将日志文件写入特定文件夹。创建日志文件后,它大约每 2 秒写入一次,直到达到大约 5MB。然后创建一个新文件。我是 Parsi g 日志文件以实时收集数据。

我正在使用目录监视器来监听目录的更改。当检测到更改时,我可以比较 NSfilemodocation 日期以获取要监视的最新文件名。

然后我使用该文件名创建一个 NSinput 流。我创建我的缓冲区,然后打开流并检查它是否“hasBytesAvail”并开始解析。

我的问题是:我正在到达文件的末尾,并且正在调用 EventEndOfStream ,这会破坏我的流。

我有两个选择:

  1. 保持字节读取变量当前,直到创建新文件。这意味着每 2 秒我需要一遍又一遍地重新创建流,这似乎是一种浪费。

  2. 只要当前文件是目录中的最新文件,就防止关闭流。这听起来很简单,但为了做到这一点,我必须读到文件的末尾,这也会触发流被关闭和释放。

用最简单的术语来说,我想监视一个文件夹以获取要监视的文件的名称。然后监视文件并仅读取自上次读取以来的新字节。没有不必要的 NSInputstream 实例。

有没有人有什么建议?

0 投票
1 回答
30 浏览

dll - 我应该挂钩哪些函数来告诉我哪个进程重命名了文件?

我想写一个windows钩子,它可以告诉我文件扩展名何时改变,以及是什么进程改变了它们。

我计划使用的方法是 Trampolining https://en.wikipedia.org/wiki/Trampoline_(computing)

我需要 2 条信息从注入的 DLL 返回到我的主程序。
1.扩展名改变的文件的路径 2.是什么进程改变了它

即 C:/whatever/MyFile.txt 变成 C:/whatever/MyFile.doc 和 PID 7344,SomeProgram.exe 改变了它

为了获得我需要的所有信息,我必须将哪些函数重新路由到我注入的 DLL。

0 投票
0 回答
46 浏览

macos - 在 MacOSX 上打开太多打开的文件时监控并发出警报

MacOSX(最好是El Capitan)是否有任何工具可以监视系统中打开的文件并在打开的文件过多时发出警报?

不仅会发出警报,还会将打开的文件列表转储到某处(文本文件,如果在这种情况下可能的话)。

我参与了一个可能导致打开文件过多的应用程序的开发,因此提出了这个问题。

0 投票
1 回答
75 浏览

windows - 监控文件进出文件夹(文件队列)

我有一个假定为文件队列的文件夹,每秒有许多文件进入和离开文件队列。我想编写一个脚本来维护 2 个日志文件。一个记录文件名和文件进入文件队列的时间,另一个记录文件名和文件离开队列的时间。能否请你帮忙?

0 投票
3 回答
1289 浏览

csv - 通过 Lua 脚本监控文件

晚上好,

我目前正在开发一种将机器创建的数据从 csv 表导入数据库的方法。我的问题是,有没有办法用 Lua 对 csv 文件的变化做出反应。

该文件以这种格式获取一行:

17162H,"801234500001",9/23/2016 12:33:30 PM,"INV"

每次扫描器完成扫描过程时,在旧行下添加,但没有直接连接到数据库,以触发脚本。

是否通过不同的文件大小、文件夹大小(包含文件的文件夹)或文件信息中的更改(如上次打开的日期)检测到更改并不重要,但我无法打开并读取它永久由于性能原因。

这也是我第一次在这里问,很抱歉我笨拙的方式,随着时间的推移,我会努力提高自己。

0 投票
1 回答
103 浏览

javascript - Node.js:如何轮询 Web 资源以进行更改?

使用 node.js 如何以异步方式轮询 Web 资源(例如 example.org/data.json)以进行更改,以便在某个资源发生更改时通知客户端?

我正在寻找一个库或至少一种更优雅的方式来存档它,而不是自己下载文件,每隔几秒计算和比较一次哈希。

到目前为止,我发现的所有内容都在后台使用 inotify 或 fswatch,因此它不能用于非本地文件。

0 投票
1 回答
107 浏览

c# - 监视文件何时被使用

我需要监视文件 (*.wav) 何时被执行。
我知道 filesystemwatcher 类。但是,当文件被使用时,此类会通知吗?启动 exe 时,我也遇到了Monitor。虽然我意识到这与 exe 有关,但有没有办法通知已执行 wav 文件?

0 投票
0 回答
117 浏览

animation - 在 Motion Builder (Autodesk) 中监控 bvh 文件的更改

任何拥有 MotionBuilder 经验的人,

我想从外部更新 bvh 文件(向其中添加运动数据)并在 MotionBuilder 中播放结果。该程序有 Python 脚本,其中之一是 FileMonitoring.py,它应该跟踪文件中的更改。

是否可以将 FileMonitoring.py 脚本应用于指定角色行为的 .bvh 文件?

到目前为止,我已经尝试将 FileMonitoring 应用到 .bvh 文件并在外部更新 bvh 文件,但动作没有更新。

0 投票
1 回答
643 浏览

c++ - ReadDirectoryChangesW 在复制或创建文件时不捕获 FILE_ACTION_ADDED

我试图用来ReadDirectoryChangesW跟踪文件何时被创建、复制或移动到受监视的目录。

我的问题是,当我在受监视目录上复制或创建文件时,没有捕获ReadDirectoryChangesWFILE_ACTION_ADDED 事件,而是仅捕获 FILE_ACTION_MODIFIED 事件。

另一方面,当我将文件(而不是复制或创建)从另一个目录移动到受监视的目录时,会捕获 FILE_ACTION_ADDED。

我想知道是否有人知道一种方法可以让 ReadDirectoryChangesW 在我的 3 个案例中捕获 FILE_ACTION_ADDED:创建、复制和移动。

ReadDirectoryChangesW这样称呼:

CreateFileA用来初始化directory_handle

然后,FileIOCompletionRoutine当我将文件复制到受监视的目录或创建文件时,我永远不会收到 FILE_ACTION_ADDED ,只有当我移动文件时。这是正常行为还是我做错了什么?

编辑1:

编辑2:

我发现如果我FILE_NOTIFY_CHANGE_LAST_WRITE从创建新文件和执行剪切和粘贴时正确捕获事件ReadDirectoryChangesW中删除FILE_ACTION_ADDED,但如果我执行复制和粘贴则不会在这种情况下触发FILE_ACTION_MODIFIED. 为了FILE_ACTION_ADDED在我复制并粘贴到受监控的目录时获得一个,我也需要删除该FILE_NOTIFY_CHANGE_SIZE标志。

因此,如果想要在受监视目录中跟踪新文件(创建、复制或移动),我只需要函数FILE_NOTIFY_CHANGE_FILE_NAME | FILE_NOTIFY_CHANGE_DIR_NAME上的标志。ReadDirectoryChangesW如果我想跟踪我需要的修改过的(已经存在于目录中)文件FILE_NOTIFY_CHANGE_SIZE,但我不能使用三个标志中的一个或三个标志ReadDirectoryChangesW来跟踪新文件和修改过的文件。

你们中的任何人是否找到了一种方法来使用三个标志的逻辑或三个标志来跟踪所有这些事件,或者我是否必须ReadDirectoryChangesW为每种情况调用不同的标志?