Re: My private problems
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]
Re: My private problems
On Sun, Apr 20, 2008 at 3:46 AM, stephen joseph butler [EMAIL PROTECTED] wrote: You can do this: [[path stringByDeletingLastPathComponent] stringByAppendingPathComponent:[fima pathContentOfSymbolicLinkAtPath :path]]; I think that will work. Actually, that won't. You have to write a special case still to handle if the symbolic link is absolute. What are you trying to accomplish, exactly? ___ 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]
Re: My private problems
On 20 Apr 2008, at 10:53, [EMAIL PROTECTED] wrote: On Sun, Apr 20, 2008 at 3:46 AM, stephen joseph butler [EMAIL PROTECTED] wrote: You can do this: [[path stringByDeletingLastPathComponent] stringByAppendingPathComponent:[fima pathContentOfSymbolicLinkAtPath :path]]; I think that will work. Actually, that won't. You have to write a special case still to handle if the symbolic link is absolute. What are you trying to accomplish, exactly? I want to call statfs(), and had previously concluded that it does not follow symbolic links. It seems that on 10.4.11 this is no longer true. So - just for fun - how can I convert the symbolic link /tmp into an absolute pathname? stringByResolvingSymlinksInPath leaves it unchanged. pathContentOfSymbolicLinkAtPath returns a relative path. What to do? Kind regards, Gerriet. ___ 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]
Re: My private problems
On Apr 20, 2008, at 6:18 AM, Gerriet M. Denkmann wrote: So - just for fun - how can I convert the symbolic link /tmp into an absolute pathname? stringByResolvingSymlinksInPath leaves it unchanged. That the /private prefix is removed is documented behavior. http://developer.apple.com/DOCUMENTATION/Cocoa/Reference/Foundation/Classes/NSString_Class/Reference/NSString.html#//apple_ref/occ/instm/NSString/stringByResolvingSymlinksInPath ___ 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]
Re: My private problems
To resolve symlinks in paths, call -[NSString stringByResolvingSymlinksInPath:] This is declared in NSPathUtilities.h, which makes it easy to overlook... —Jens smime.p7s Description: S/MIME cryptographic signature ___ 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]