问题标签 [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.

0 投票
1 回答
694 浏览

macos - 为什么 lsyncd 需要 xnu?

我正在完成在 Mac OS X(确切地说是 10.7.3)上编译 lsyncd 的步骤。

尽管 lysncd 源代码中存在一些小的语法错误,但最终还是设法编译了它;我从 Axel Kittenberger(管理 lsyncd 的开发人员)那里了解到编译需要 XNU。

参考:-

配置步骤是这样完成的: -

然后对新创建的 Makefile 进行一些小的更改(将 asciidoc 的路径更改为我的 macports asciidoc 位置)并运行

所以一切顺利,我终于有了生成的lsyncd二进制文件。

我的问题是:为什么在这个过程中需要 xnu?(很想知道)

0 投票
1 回答
542 浏览

c# - 将实例回调作为函数指针发送会导致“this”在 C# 中为“null”

我正在使用 Mono 编写FileSystemWatcher,但由于某种原因,我发送到 FSEvents 库的回调没有维护this引用,即使回调是实例方法,它在回调中也始终为空。

知道为什么会这样吗?

更新

有兴趣的人可以在这里找到固定代码。

0 投票
2 回答
5238 浏览

sync - Dropbox DIY 与您的服务器同步:rsync + FSEvents/inotify/其他?

长话短说,我需要构建一个简单的保管箱克隆来与我的服务器同步文件。

我做了功课,做了很多研究,但我找到的解决方案(代码和已经烘焙的解决方案)似乎都不够好。

我也阅读了关于 stackoverflow 的其他帖子,唯一的区别是我需要在文件系统事件上触发同步任务。此外,git 已经被用于真正的版本控制目的,我不能将它用于这个同步任务。

这是我的设置:

我在 github 上有一个 git 存储库,我使用 capistrano 进行定期部署。这是我的问题:我们有基础设施和数据影响,因此无法进行真正的本地开发。

我的代码可以存在本地,我可以在 github 上对其进行版本控制,但它需要在服务器上运行,即使我在做开发。为了避免牛仔发展,我想出了这个解决方案:

  • 请记住,这仅针对前端层,其中涉及数百个tpl(html + smarty),css和js文件*

  • master 分支面向公众运行

  • 当登录我们的实时应用程序时,开发人员可以切换到“开发人员模式”并指向服务器上存在的不同存储库。这个“幽灵”存储库只是开发人员本地工作副本的精确副本。它通过保管箱克隆与开发人员的本地存储库保持同步。

这样,这可以是我们的工作流程:

  1. 开发人员在所有东西上都在本地工作
  2. 每次本地更改时,“ghost”开发人员存储库也会更新,并且可以在服务器上进行测试
  3. 当开发人员对结果感到满意时,他可以提交并推送到开发分支
  4. 当团队准备好发布新版本时,所有提交都可以通过 capistrano 进行部署

这样一来,当涉及到 git 工作流程时,每个开发人员的 ghost 存储库就完全脱离了画面(就 git 而言,这些 ghost 存储库甚至不存在,它们只是开发人员的实用程序)。

鉴于这个(很长!)前提,这些是我需要的功能:

  • 通过 ssh 同步的能力
  • 触发文件系统事件的同步(创建/更新/删除文件和目录)
  • 仅以 rsync 样式同步更新(增量编码),基本上只是差异
  • 可能是跨平台(windows/mac)解决方案

在“已经制定”的解决方案中:

  • 好同步
  • 超级灵活的文件同步器
  • 计时同步

只有 GoodSync 似乎提供了我需要的东西,但我无法以任何可能的方式使自动更新功能(文件系统更新同步)工作。

在我必须自己做的食谱中,我读过关于 FSEvents、inotify (linux) + rsync 选项,但它们可能有点超出我的范围(我可以做基本的 applescripts,FSEvents 可能不是很多API 或 inotify)

这就是我现在所处的位置。我对任何类型的建议持开放态度,我提前感谢您就该主题分享的任何内容。

谢谢!

0 投票
1 回答
1467 浏览

macos - 在 Perl 的 Mac::FSEvents 中检查哪些文件发生了变化?

每当使用以下命令调用更改事件时,是否可以查看哪些文件已更改: https ://metacpan.org/pod/Mac::FSEvents ?

非常感谢!:)

0 投票
2 回答
4560 浏览

cocoa - 监视文件更改的目录

我想监视一个目录(包含数千个文件,大约有 5 级子目录)以了解文件何时更改。我知道我可以使用 FSEvents API 来监视该目录中文件何时更改的目录,但我似乎无法弄清楚如何确定哪些文件已更改。参考建议我构建一棵二叉树并在每次触发事件时遍历树,这是确定哪些文件已更改的最佳方法吗?如果没有,有什么更好的选择?

递归扫描目录并将kqueue附加到每个文件会更好吗?我不确定它对数千个文件的效果如何?

0 投票
1 回答
4580 浏览

c++ - FSEvents C++ 示例

我需要为 Mac 中的文件夹创建 FSEvents 观察程序。我对 C++ 很满意,有没有办法在 C++ 代码中而不是 Objective-C 中获取 FSEvents 通知。是否有一些示例代码可以开始以及我需要包含的任何库..?

我已经在这个页面上了。 http://developer.apple.com/library/mac/#featuredarticles/FileSystemEvents/_index.html

但是似乎只有Objective C,我可以有它的CPP版本吗

0 投票
1 回答
355 浏览

macos - FSEvents 处理被其他操作系统改变的磁盘

我在 FSEvents 上看到了奇怪的行为,我在恢复模式下挂载了我的驱动器,并且在重新启动时,我的流中的 fsevents 为零。我执行以下操作:

  1. 定期开机
  2. 使用 FSEventsGetCurrentEventId() 记录当前事件
  3. 以恢复模式启动并修改监视路径中的文件
  4. 重启系统

发生这种情况时,我在使用 fsevents API 时根本没有收到任何事件。它在 kFSEventStreamEventFlagHistoryDone 哨兵中发送的唯一标志,即使我在常规操作系统上进行了其他更改。

ars technica 评论似乎暗示当您安装在其他设备上时,您应该获得 kFSEventStreamEventFlagMustScanSubDirs 标志,但我没有看到这种行为。有没有人遇到过这个?有没有更好的方法来检测和处理在操作系统关闭时驱动器已安装在其他地方的情况?

更新:我尝试了从 linux 启动并修改文件系统的相同操作。无论如何,我没有得到同样奇怪的 0 事件行为,但我也没有从我更改的目录或 MustScanSubdirs 标志中得到事件。

更新 2:在这个线程中,接受的响应说当发生这种情况时,时间机器会检测到在上述情况下日志已过期。有谁知道如何检测日志是否过期?这个日期可以用来代替标志。

0 投票
2 回答
2690 浏览

ruby-on-rails - 无法让 rb-fsevent gem 在 OSX 上工作

我正在使用 Guard 运行 Test::Unit 并试图切换到 RSpec。

我正在运行 Mac OSX,但似乎无法让 rb-fsevent 工作。当我启动 Guard 时,我收到一条消息“[Listen warning]:Listen 将轮询更改。在https://github.com/guard/listen#polling-fallback了解更多信息。”

我尝试了各种方法:

  • “gem install rb-fsevent”(根据railscast 275
  • 将 rb-fsevent 添加到我的 Gemfile(见下文)
  • 指定 rb-fsevent 版本(例如 0.9.1)
  • 重新启动 Guard、Rails 和整个系统

Gemfile(在Michael Hartl 的 Ruby on Rails 教程中推荐):

编辑:

我还尝试将 rb-fsevent 包含到开发组中(在Railscast 264中推荐):

但是我得到了同样的错误。一个线索可能是,如果我在没有 bundle exec 的情况下运行 guard,那么我会得到“Guard here!看起来你的项目有一个 Gemfile,但你在guardBundler 之外运行。” bundle exec 在教程中似乎不是必需的。

关于可能出了什么问题的任何想法,或者我如何获得有关该问题的更多信息?

0 投票
1 回答
274 浏览

macos - 我是否需要管理员权限才能使用 FSEvents 监控 Mac 中的文件

我正在尝试在 Mac 中为我的应用程序获取文件系统事件通知。当我在谷歌上搜索 FSEvents 时,注意到 Dropbox 也在使用 FSEvents,它要求管理员权限来运行“dbfseventsd”进程。我是否还需要对我的应用程序具有管理员权限才能监视目录中的更改..?

0 投票
1 回答
1194 浏览

macos - fsevents-daemon vs FSEvents API

I was checking apple Developer Documentation about FSEvents , but later in dropbox forums, i found this https://forums.dropbox.com/topic.php?id=20771,

" I believe one would not use fsevents-daemon directly but would use the FSEvents API. .... "

Whats the difference between fsvents-daemon and FSEvents API. I wanted to Monitor File System changes in Mac OS , which will be the effective solution for me ? Whats the difference between fseventsd and dbfseventsd(Dropbox's).