gpt4 book ai didi

objective-c - 是否可以在 Cocoa 中确定文件是否是从别名打开的?

转载 作者:搜寻专家 更新时间:2023-10-30 19:48:04 24 4
gpt4 key购买 nike

我想到的程序需要与所有以特定扩展名(例如“.abc”)结尾的文件相关联,因此当用户双击某个“file.abc”时它会打开。当用户双击此类文件的别名时,是否可以在 Cocoa 中确定?

最佳答案

当以这种方式启动时,应用程序委托(delegate)将收到 application:openFile:。如果这导致您启动,application:openFile: 将位于 applicationWillFinishLaunching:applicationDidFinishLaunching: 之间。您可能会在其他时间收到 application:openFile:,因为当用户双击文档时您可能已经启动。


编辑:别名现在称为“书签”(自 10.6 起)。您使用 NSURL 来阅读它们。查看File System Programming Guide有关详细信息,但这是一个简短的示例:

NSURL *aliasURL = [NSURL fileURLWithPath:@"..."];
NSData *alias = [NSURL bookmarkDataWithContentsOfURL:aliasURL error:&error];
if (alias == NULL) {
NSLog(@"Failed aliasURL: %@", error);
}

BOOL isStale;
NSURL *realURL = [NSURL URLByResolvingBookmarkData:alias options:0 relativeToURL:nil bookmarkDataIsStale:&isStale error:&error];
if (isStale || realURL == NULL) {
NSLog(@"Failed realURL: %@", error);
}

NSLog(@"realPath:%@", [realURL path]);

我不知道有任何 API 会告诉您给定的 NSURL 是否是一个别名,而不是尝试将其作为一个别名读取并查看它是否失败。

请记住,用户也可能使用符号链接(symbolic link)创建相同的情况。

关于objective-c - 是否可以在 Cocoa 中确定文件是否是从别名打开的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12330998/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com