If you're at 10.6, then it also provides new methods in NSURL for reading aliases: check NSURL bookmarkDataWithContentsOfURL: to solve them you can use: NSURL URLByResolvingBookmarkData: options: relativeToURL: bookmarkDataIsStale: error:
pre 10.6 Apple " " Cocoa docs NSString
NSString *path = <#Get a suitable path#>;
NSString *resolvedPath = nil;
CFURLRef url = CFURLCreateWithFileSystemPath
(kCFAllocatorDefault, (CFStringRef)path, kCFURLPOSIXPathStyle, NO);
if (url != NULL)
{
FSRef fsRef;
if (CFURLGetFSRef(url, &fsRef))
{
Boolean targetIsFolder, wasAliased;
OSErr err = FSResolveAliasFile (&fsRef, true, &targetIsFolder, &wasAliased);
if ((err == noErr) && wasAliased)
{
CFURLRef resolvedUrl = CFURLCreateFromFSRef(kCFAllocatorDefault, &fsRef);
if (resolvedUrl != NULL)
{
resolvedPath = (NSString*)
CFURLCopyFileSystemPath(resolvedUrl, kCFURLPOSIXPathStyle);
CFRelease(resolvedUrl);
}
}
}
CFRelease(url);
}
if (resolvedPath == nil)
{
resolvedPath = [[NSString alloc] initWithString:path];
}
, , , Alias - .