On Apr 25, 2009, at 7:28 PM, Erg Consultant wrote:

I was using CFURLGetFSRef passing in the NSString which works fine as long as the path contains no special chars. If it does, CFURLGetFSRef returns nil.

File path strings aren't URLs. Even a string which looks a bit URL- ish (for example, if you just tack "file://" on the front of a path) isn't a URL. It's not a valid URL string; it is especially not a CFURL or NSURL object!

If you've got a path string and you want to make a URL referencing the same file, you have to do it the right way. As mentioned, +fileURLWithPath: is one good way. CFURLCreateWithFileSystemPath also works.

Wrong ways include +URLWithString: (and the other ...WithString... methods of NSURL) and CFURLCreateWithString. Those are only appropriate if your have a proper URL string (with characters that aren't legal in a URL escaped). Passing an NSString to a function which expects a CFURLRef is asking for trouble. Having it work or return nil is luck; it was just as like to crash your program.

Regards,
Ken

_______________________________________________

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