我正在尝试将DnD承诺的文件从Mac OSX应用程序发送到我自己的应用程序。我使用以下内容:
NSArray *filenames = [info namesOfPromisedFilesDroppedAtDestination:[NSURL fileURLWithPath:path]];
(信息来自NSDraggingInfo)
事实上,我得到了一个文件名列表,我可以将其复制到我的应用程序中。
但是,我发现这些文件并不总是完整的 - 这意味着,在我处理这些文件时,不能保证它们完全复制到文件系统。
我现在正在寻找合适的解决方案 - 我该如何判断何时开始处理文件?是否有其他方法可以返回文件名及其状态?
非常感谢任何帮助!
谢谢, 尼里
答案 0 :(得分:1)
在你接受文件之前,承诺的文件甚至都没有开始写,所以你看到它们只写了一半是正常的。
据我所知,没有办法知道文件写完的时间。您接受这些文件的应用程序是否也不会宣传合适的“文件内容”或“文件”或其他简单,非承诺的粘贴板类型?大多数应用程序宣传他们将创建“承诺”类型只是因此Finder可以将文件放入用户选择的文件夹中,而不必让应用程序提前写入整个(可能是巨大的)文件 - 它不应该用于应用程序与其他应用程序交谈。