问题标签 [fsevents]
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.
cocoa - Mac FSEvents - 如何检测文件或目录是否被删除/移除
我使用 FSEvent API 来检测文件修改。我已经能够检测到何时创建或重命名了新文件/文件夹。但我无法检测文件是否被删除/删除。
当我删除一个文件时,我得到一个kFSEventStreamEventFlagItemRenamed
而不是kFSEventStreamEventFlagItemRemoved
我期望的。
有没有人有 FSEvent API 的经验或知道这个问题?
谢谢
macos - Cocoa File Opened Event - 检测文件是否被打开
我想问是否可以检测是否在 Finder 中打开了文件。我看了看,File System Events API
似乎不可能听这样的事件。
有谁知道这是否可能?
python - OS X 上的 Python:ImportError:没有名为 fsevents 的模块
我对python一无所知,但我有一个(曾经是)别人写的工作脚本,在那个脚本中有以下两行:
当我通过此命令从终端执行 python 脚本时:
我收到此错误:
我现在在与脚本正常工作时不同的机器上运行 10.8.4。我会错过一些第 3 方安装吗?
macos - 如何检测文件是否已关闭?
是否可以检测文件(例如在预览中打开的 pdf 文件)是否已关闭?
FSEvents API
不会触发这样的事件。
也许我可以观察相关的过程或类似的东西?!
callback - OS X 和 FSEvents:如何释放提供给 FSEventStreamRef 的回调指针?
我正在使用 FSEvents 来监视目录,并且每当目录更改时,我都会调用一个块,该块最初传递到 FSEventStreamRef 的 FSEventStreamContext 中。在停止监视目录时如何释放块?下面的代码供参考。
macos - 如何将 kFSEventStreamEventFlagEventIdsWrapped 与 FSEvents 一起使用?
我试图了解如何将kFSEventStreamEventFlagEventIdsWrapped
事件标志与FSEvents
.
根据文档,当事件 id 计数器回绕时,该标志被发送到已注册的实例,从而使之前的事件 id 过时。
现在让我们想象以下场景:
- 我
FSEvents
在我的申请中注册; - 完成处理后
FSEvents
(例如,我的应用程序退出),我保存在处理事件时遇到的最后一个事件 id,以便能够从该 id 重播更改; - 当我的应用程序没有运行时,事件 id 计数器会环绕。
我的问题是:我怎么知道周围的柜台?(因此需要我重新扫描整个目录结构。)
macos - FSEvents API 泄漏文件描述符 (KQUEUE)
我正在尝试使用 FSEvents API(OSX 10.9,启用 ARC,沙盒)监视一组路径。以下代码泄漏文件描述符。使用lsof,我得到了很多:
几个小时后,我达到了最大打开描述符限制,并且 FSEventStreamCreate 开始失败。
知道为什么每次运行它都会泄漏两个文件描述符吗?
objective-c - FSEvents API 和 kqueue 导致实际内存快速上升和应用程序挂起
我想监视文件夹的变化。我也可以使用 FSEvents 或 kqueue,但问题是当我监视一个包含大量 JPG 图像的文件夹(我用 100 张照片进行测试)时,内存增长得如此之快(一个小应用程序超过 2GB)。我看到在使用 Instruments 进行分析时分配了很多 ImageIO。
这是仪器的屏幕截图。
我不知道为什么 ImageIO 在这里分配了这么多。
我从这里得到了 kqueue 教程: http ://www.davidhamrick.com/2011/10/09/kqueue-in-cocoa.html
任何经验、指南或建议将不胜感激。
objective-c - 从 FSEvents 事件 id 获取时间戳
我正在使用 FSEvents API 来获取从创建到现在的目录中的所有更改。
从我这样做的方式来看,我成功地获取了所有事件 ID,但是这些事件不包含时间戳。一开始我认为不可能将这些 id 与特定时间匹配,直到我在 CocoaDev 上读到这个:
事件被赋予一个唯一的 64 位 ID 而不是时间戳(由于自动合并发生在彼此之间 30 秒内的事件以节省空间),但您可以将其转换为近似时间。
但是我仍然不明白如何转换16738189
为时间戳。有任何想法吗?
macos - 使用 SCEvents(FSEvents 包装器)获取更改文件的 FullPath?
我使用 SCEvents 实现了文件观察器部分:https ://github.com/mz2/SCEvents它在文件创建、修改、删除或重命名时通知我,如下所示:
2014-02-11 16:08:38.725 TestSCEvent10-2[2995:403] SCEvent { eventId = 3182336, eventPath = /Users/user1/Desktop, eventFlags = 131328 }
它返回父目录的路径。我应该如何获得修改文件的完整路径?