如何使用cocoa判断文件复制是否完成
我正在使用 Foundation 框架和 FSEvents API 在 XCode 中开发 MAC 的文件夹监视应用程序。在打开文件进行其他操作之前,我需要知道文件是否已完全复制到目的地。有什么办法可以知道吗?请指教
I am developing folder watcher application for MAC in XCode using Foundation framework and FSEvents API. I need to know whether the file has been completely copied to the destination before I open the file for other operation. Is there any way of knowing it? please advice
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
我注意到 FSEvents API 在开头发送“创建”事件,在结尾发送“创建和修改”事件。在我的项目中,我使用了零延迟的 FSEventsStream,并在创建时使用“NoDefer”标志。仅监视“修改”事件可能会向您提供文件复制已完成的信息。
I noticed that FSEvents API sends "create" event at beginning and "create-and-modify" at the end. On my project I used FSEventsStream with zero latency, and "NoDefer" flag on creation. Watching for "Modify" only events may give you information that file copy is completed.
从简单地研究 FSEvents API我想说的是,你想要的东西是不可能的。不过,我可能会弄错,我自己从未使用过 FSEvents。 这个问题的提出者通过使用
lsof
。From simply studying the FSEvents API I would say that what you want is not possible. I could be mistaken, though, I have never used FSEvents myself. The asker of this question has solved the problem by separately monitoring the new file with
lsof
.您可以检查您要打开的文件是否存在?
并采取相应行动。
you can check that whether the file you want to open is exist or not?
and act accordingly.