On 10 Dec 2008, at 14:59, Ben wrote:

I am trying to store a reference to a file in a database, such that if the file moves, I can still search for it in my database. I have read up on the Carbon Alias Manager and the third party BSAlias/NDAlias classes but none of these quite seem to fit the bill as it looks like I am working backwards from their designed use. ie, rather than finding the file from a database record, I want to lookup the database record from a known file.

In this situation, would it be best to use -[NSFileManager attributesOfItemAtPath:error:] and store the NSFileSystemFileNumber? I'm not sure how resilient this approach is. Or is there something that I have missed completely?

Not sure that's such a good idea for several reasons, 2 of which are:

The FileSystem number wouldn't survive a copy of the database and file to another volume. I am not sure that NSFileSystemFileNumber will be available or persistent for some volume formats.

I think you should stick with the alias approach. If you need to match a moved file, then just resolve all the aliases in your database until you find the file you are looking for.

You could maybe speed up 'normal' searching by keeping a hash of the relative path from the database to the file and searching for that first, and only fall back to the full scan if that fails. (If a relative path is not available (i.e crossing volumes/servers) then just hash the full path of the file.)
_______________________________________________

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 [EMAIL PROTECTED]

Reply via email to