如何在应用程序中创建Finder别名?

kia*_*uno 6 cocoa finder objective-c

从Cocoa应用程序创建Finder别名所需的代码是什么?OS X 10.5,10.6和10.7之间的代码有什么不同吗?

cod*_*nd1 6

由于OS X 10.6您可以使用NSUrlwriteBookmarkData:toURL:options:error:方法

文档:

使用指定的书签数据在指定位置的磁盘上创建别名文件.

示例代码:

NSURL *originalUrl = [NSURL fileURLWithPath:@"/this/is/your/path"];
NSURL *aliasUrl = [NSURL fileURLWithPath:@"/your/alias/path"];
NSData *bookmarkData = [originalUrl bookmarkDataWithOptions: NSURLBookmarkCreationSuitableForBookmarkFile includingResourceValuesForKeys:nil relativeToURL:nil error:NULL];

if(bookmarkData != nil) {
    BOOL success = [NSURL writeBookmarkData:bookmarkData toURL:aliasUrl options:NSURLBookmarkCreationSuitableForBookmarkFile error:NULL];
    if(NO == success) {
        //error
    }
}
Run Code Online (Sandbox Code Playgroud)

但是,以这种方式创建的别名不能向后兼容早期的OS X版本(10.6之前版本)