1

outlineView:namesOfPromisedFilesDroppedAtDestination:forDraggedItems:メソッド(NSOutlineViewDataSourceプロトコルで指定)に渡される宛先URLが常にファイルURLであると想定しても安全ですか?

このようなメソッドの実装では、NSDictionaryのwriteToURL:atomically:を使用して「.webloc」プロパティリストを書き出します。まだ使用されていないファイル名を使用して、既存のファイルが上書きされないようにしたいと思います。NSFileManagerのfileExistsAtPath:を使用してファイルURLを確認できることは知っていますが、ファイルURLを処理していない場合の処理​​方法がわかりません。それではまた、そのような状況が発生することはありますか?

リモートボリュームなどは常にローカルファイルシステムのマウントポイントを介して提供されるため、はい、URLは常にファイルURLになると思います。しかし、おそらく私は何かを見落としています...

いいえの場合、宛先URLの既存のファイルが上書きされないようにファイル名を選択するにはどうすればよいですか?

(注:OSの最小バージョン要件としてMac OS X 10.4を対象とするアプリケーションを作成しています。)

4

1 に答える 1

1

dropDestination が常にファイルの URL であると仮定するのは合理的ですが、確実にしたい場合はisFileURLメッセージを送信できます。

ファイルの URL ではない奇妙なケース: プロパティ リストを書き込む前に、書き込もうとしている URL からダウンロードを試み、ダウンロードが成功した場合は宛先ファイル名を変更します。

于 2010-02-25T20:49:29.570 に答える