On Sun, Apr 20, 2008 at 3:19 AM, Gerriet M. Denkmann <[EMAIL PROTECTED]>
wrote:

> I need an absolute path.
>
> So I do:
>
> NSFileManager *fima = [ NSFileManager defaultManager ];
> NSString *fileType = [ [ fima fileAttributesAtPath: path  traverseLink: NO
> ]; fileType ];
> if ( [ fileType isEqualToString: NSFileTypeSymbolicLink ] )
>        path = [ fima pathContentOfSymbolicLinkAtPath: path ];
>
> The problem is: "/tmp" is converted to  "private/tmp" (Note the missing
> slash at the start).


Well, it's not "converted". In OS X, "/tmp" is a relative symbolic link.
-[NSFileManager pathContentOfSymbolicLinkAtPath:] calls something like
readlink(2) behind the scenes. So what you get back is the content of the
link... which is a relative directory name.

>
> Short of hardcoding a change from "private" to "/private" -
> is there some Cocoa (or Carbon or bsd or whatever) way to get "/tmp"
>  converted to  "/private/tmp" (with the leading slash) ?
> (Same problem exists for /etc and /var).


You can do this:

[[path stringByDeletingLastPathComponent]
stringByAppendingPathComponent:[fima pathContentOfSymbolicLinkAtPath
>
> :path]];


I think that will work.
_______________________________________________

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