On 6 Jan 2010, at 05:39, Ken Thomases wrote:

> On Jan 5, 2010, at 6:51 PM, Rob Keniger wrote:
> 
>> Should Cocoa applications always assume that the filesystem is 
>> case-insensitive when comparing path strings? Surely this could lead to 
>> problems if the user has formatted a volume with a case-sensitive file 
>> system?
> 
> Don't compare paths.  Use APIs like FSCompareFSRefs() or call -[NSFileManager 
> attributesOfItemAtPath:error:] and compare the NSFileDeviceIdentifier and 
> NSFileSystemFileNumber keys (this is the Cocoa equivalent of calling stat(2) 
> and comparing st_dev and st_ino).

Or you can canonicalise your paths first so that their components match 
whatever is on the disk.  Then you can compare them.  This is probably more 
work than the above though.

Depending on how you do it, this may result in different behaviour to the above 
suggestions; by which I mean, comparing st_dev and st_ino will tell you whether 
you have the same file, but what it doesn't tell you is whether the path used 
to get at it was different because of symlinks.

Kind regards,

Alastair.

--
http://alastairs-place.net



_______________________________________________

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:
http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

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

Reply via email to