1

假设传递给outlineView:namesOfPromisedFilesDroppedAtDestination:forDraggedItems:方法(由 NSOutlineViewDataSource 协议指定)的目标 URL 始终是文件 URL 是否安全?

在实现这种方法时,我使用 NSDictionary 的 writeToURL:atomically: 来写出一个“.webloc”属性列表。我想确保没有使用尚未使用的文件名覆盖现有文件。我知道可以使用 NSFileManager 的 fileExistsAtPath: 检查文件 URL,但我不确定如何处理不处理文件 URL 的情况。那么,这种情况是否曾经发生过?

我猜的,URL 将始终是文件 URL,因为远程卷等总是通过本地文件系统中的挂载点提供;但也许我忽略了一些东西......

如果不是,那么如何选择一个文件名,以便不会覆盖目标 URL 上的现有文件?

(注意:我正在编写一个以 Mac OS X 10.4 作为最低操作系统版本要求的应用程序。)

4

1 回答 1

1

假设 dropDestination 总是一个文件 URL 似乎是合理的,但如果你想确定你可以向它发送isFileURL消息。

在它不是文件 URL 的奇怪情况下:在编写您的属性列表之前,请尝试从您将要写入的 URL 下载,如果下载成功,请更改您的目标文件名。

于 2010-02-25T20:49:29.570 回答