'显示包装内容'通过客观的C代码

时间:2014-08-11 13:14:07

标签: objective-c macos cocoa terminal swift

我们可以右键单击.app文件并查看其包内容。要以编程方式打开文件,我们可以使用NSWorkspace但是如何打开应用程序的包内容?

我搜索了很多,但似乎没有解决方案。如果我错过了什么,请帮忙。

enter image description here

3 个答案:

答案 0 :(得分:1)

根据评论,OP似乎想要从代码中在finder中打开应用程序的内容目录。以下行将实现:

夫特:

let appName = "Safari";
let command:NSString = String(format:"open '/Applications/%@.app/Contents'", appName);
system(command.cStringUsingEncoding(NSUTF8StringEncoding))

目标-C:

NSString *appName = @"Safari";
NSString *command = [NSString stringWithFormat:@"open '/Applications/%@.app/Contents'", appName];
system([command cStringUsingEncoding:NSUTF8StringEncoding]);

替代:

NSString *appPath = @"/Applications/Safari";
NSString *command = [NSString stringWithFormat:@"open '/%@.app/Contents'", appPath];
system([command cStringUsingEncoding:NSUTF8StringEncoding]);

答案 1 :(得分:0)

应用程序只是一个目录,show package contents只允许您将应用程序作为目录访问而不是执行它。因此,您可以访问应用程序中的文件,例如

/Applications/Safari.app/Contents/Info.plist

答案 2 :(得分:0)

这似乎有效:

NSString* contentsPath = [appPath stringByAppendingPathComponent:@"Contents"];
[[NSWorkspace sharedWorkspace] selectFile: contentsPath
                                inFileViewerRootedAtPath: appPath];