2012-03-04 32 views
0

我需要将特定文件夹与我的应用程序关联起来,才能通过双击文件夹启动应用程序,就好像它是一个包文件夹。 这些文件夹甚至应该有自己的图标。OSX:将特定文件夹与正在开发的应用程序相关联

我已经能够通过提供扩展名的文件夹并设置应用程序的Info.plist文件的文档类型部分来实现此目的。

不幸的是,我不想为该文件夹添加扩展名,我想将常规文件夹与我的应用程序关联。准确地说,我想关联每个包含名为“子文件夹”(例如)的子文件夹的文件夹。

有没有办法做到这一点?

+1

这似乎会为用户提供令人困惑的体验。我不认为它会在Finder中双击常规文件夹并让它启动一个外部应用程序。 – sbooth 2012-03-04 17:43:54

+0

@sbooth:这可能是真的,但如果文件夹有一个自定义图标,可以避免这种混淆,那么我认为它可以完成。你不觉得吗? – Andrea3000 2012-03-04 18:11:54

+0

否。文件夹是一个文件夹,否则会损坏Mac用户体验。 – 2012-03-05 03:27:04

回答

1

你不应该这样做(从用户体验的角度来看),你不能这么做(从技术角度来看,除非你考虑将Finder修补为一个选项)。

你究竟在努力实现什么?将创建一个包/捆绑包并隐藏路径扩展工作?你可以做到这一点通过NSFileManager

NSString *path = …; 
NSDictionary *attributes = [NSDictionary dictionaryWithObject:[NSNumber numberWithBool:YES] forKey:NSFileExtensionHidden]; 
NSError *error = nil; 
[[NSFileManager defaultManager] setAttributes:attributes ofItemAtPath:path error:&error]; 

要使用你的应用程序的现有文件夹关联,你可以重命名文件夹有你的软件包文件类型路径扩展。

+0

谢谢你的回答。不幸的是,我不能采用你建议的解决方案,因为即使在只读磁盘上我也需要执行文件夹应用程序关联。我想要实现的是:我的应用程序处理放置在标准文件夹结构中的文件结构。我想双击包含整个文件和文件夹结构的主文件夹并启动应用程序。 – Andrea3000 2012-03-04 19:24:17

+0

你可以做到这一点,而不必通过设置文件夹的捆绑位给文件夹一个文件扩展名,这将使Finder将文件夹看作单个文件。 iPhoto通过其iPhoto Library文件夹执行此操作。我解释了如何在[我对此问题的回答]中设置捆绑位(http://stackoverflow.com/a/2010698/50122)。 – 2012-03-05 03:29:49

+0

但是这样包仍然不会在您的应用程序中打开,或者我误会了吗?此外,这种方法也不适用于只读卷。 – gcbrueckmann 2012-03-05 11:38:24

相关问题