iPhone/iPad:目录更改通知

发布于 2024-11-08 03:23:56 字数 391 浏览 0 评论 0原文

我有一个带有 UIFileSharingEnabled 的应用程序。如果设备已连接,用户可以使用 iTunes(或其他程序)删除新文件或删除现有文件。我想检测设备上应用程序文件系统的更改。

是否有“目录更改”(或类似)通知? 通知 编程主题似乎没有完整的列表 的通知。

我相信 Galea 的答案(如下)可能会起作用,但 GCD 仅在 iOS 4.0 及更高版本中可用。不幸的是,我的目标是 iOS 3.2。

I have an application with UIFileSharingEnabled. If the device is tethered, a user can use iTunes (or other programs) to drop new files or delete existing files. I would like to detect the changes to my application's file system on the device.

Is there a 'directory change' (or similar) notification? Notification
Programming Topics
does not appear to have a comprehensive list
of notifications.

I believe Galea's answer (below) would probably work, but GCD is only available in iOS 4.0 and later. Unfortunately, I'm targeting iOS 3.2.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

自由如风 2024-11-15 03:23:57

是的,它是UNIX系统!您可以使用 kqueue() 功能来监视发生的目录更改。

以下是如何使用它的示例:http://blog.julipedia。 org/2004/10/example-of-kqueue.html。或者,如果您愿意,有一个很好的 Objective-C 包装类,称为 UKKQueue: http://www.zathras .de/angelweb/sourcecode.htm

我相信他的事件将在创建新文件时触发,而不是在写入操作完成时触发。因此,您将无法立即读取文件 - 但在列表中显示文件应该没问题。

如果您需要读取文件(例如,可能要显示 jpeg 的预览),您可以在使用 NSTimer 复制文件后等待几秒钟。

Yes, it's a UNIX system! You can use the kqueue() feature to monitor directory changes as they happen.

Here's an example of how to use it: http://blog.julipedia.org/2004/10/example-of-kqueue.html. Or if you prefer, there's a nice Objective-C wrapper class call UKKQueue: http://www.zathras.de/angelweb/sourcecode.htm

I believe he event will be fired when the new files are created, not when the write operation is finished. So you will not be able to read the files immediately - but displaying the file in a list should be fine.

If you need to read the file (maybe to display a preview of a jpeg for example), you could just wait a few seconds after it's been copied using NSTimer.

猫弦 2024-11-15 03:23:56

您可以使用 Grand Central Dispatch,特别是 dispatch_source_create 可能是一个好的开始。 (顺便说一句,GCD 是建立在 kqueue 之上的,至少对于事件部分而言)

You can use Grand Central Dispatch, in particular dispatch_source_create can be a good start. (by the way GCD is built on top of kqueue, at least for what concerns the event part)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文