Hi Daryle,

-replaceItemAtURL:… relies on the atomicity of the POSIX rename() function in 
order to safely do its operation. Since rename() doesn’t work across volumes 
(returning EXDEV), the two URLs must be on the same volume.

If you’re using a temporary directory with replaceItemAtURL:…, you want to use 
-[NSFileManager URLForDirectory:inDomain:appropriateForURL:create:error:] with 
NSItemReplacementDirectory, passing it the to-be-replaced item URL. This will 
get you an appropriate temporary directory on the target volume to ensure 
-replaceItemAtURL:… won’t fail due to rename's EXDEV.

-KP

> On Mar 30, 2015, at 4:44 PM, Daryle Walker <dary...@mac.com> wrote:
> 
> NSFileManager’s “- moveItemAtURL: toURL: error:” method does a copy if the 
> source and destination file-URLs are on different volumes. Does “- 
> replaceItemAtURL: withItemAtURL: backupItemName: options: resultingItemURL: 
> error:” do similar? The docs for the latter don’t mention it. I’m worried 
> since those docs do mention temporary directories, that we have to do 
> different-volume detection (possibly harder than in the pre-X days) and 
> copying manually. I don’t want to do that, since Apple already includes that 
> logic in the former method.
> 
> — 
> Daryle Walker
> Mac, Internet, and Video Game Junkie
> darylew AT mac DOT com 
> 
> _______________________________________________
> 
> Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)
> 
> Please do not post admin requests or moderator comments to the list.
> Contact the moderators at cocoa-dev-admins(at)lists.apple.com
> 
> Help/Unsubscribe/Update your Subscription:
> https://lists.apple.com/mailman/options/cocoa-dev/kperry%40apple.com
> 
> This email sent to kpe...@apple.com


_______________________________________________

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Reply via email to