2012-03-04 34 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

相關問題