已打开的文件上的removeItemAtPath

时间:2010-10-22 15:13:02

标签: c++ iphone objective-c nsfilemanager

我在iPhone上打开了一个文件,我正在通过网络发送数据(使用“_open”打开)。但是,我有能力从iPhone的界面删除文件。这是使用NSFileManager的removeItemAtPath完成的。

奇怪的是,即使文件当前处于打开状态,removeItemAtPath仍在继续。

文件在网络上传输完美,removeItemAtPath在传输完成之前成功。那么removeItemAtPath做一个懒惰的删除吗?即如果文件正在使用,它是否将其排队等待?如果是这样那么没有问题。

如果没有......有没有人知道如何让NSFileManager实际报告它没有删除的事实?

谢谢!

1 个答案:

答案 0 :(得分:3)

根据

的文件

http://developer.apple.com/library/ios/documentation/cocoa/reference/foundation/Classes/NSFileManager_Class/Reference/Reference.html#//apple_ref/occ/instm/NSObject/fileManager:shouldRemoveItemAtPath

shouldRemoveItemAtPath如果操作 继续,则返回YES,而不一定是已成功删除该项。文档声明:

也很有趣

讨论从此方法返回NO会导致NSFileManager停止删除该项目。如果该项目是目录,则该项目的子项也不会被删除。

阅读使我相信这是一个异步操作,并且不应该使用此方法的返回值来确定文件是否已成功删除。我的猜测是它将对象排队等待删除,并在文件不再使用时删除。