我需要將特定文件夾與我的應用程序關聯起來,才能通過雙擊文件夾啓動應用程序,就好像它是一個包文件夾。 這些文件夾甚至應該有自己的圖標。OSX:將特定文件夾與正在開發的應用程序相關聯
我已經能夠通過提供擴展名的文件夾並設置應用程序的Info.plist
文件的文檔類型部分來實現此目的。
不幸的是,我不想爲該文件夾添加擴展名,我想將常規文件夾與我的應用程序關聯。準確地說,我想關聯每個包含名爲「子文件夾」(例如)的子文件夾的文件夾。
有沒有辦法做到這一點?
我需要將特定文件夾與我的應用程序關聯起來,才能通過雙擊文件夾啓動應用程序,就好像它是一個包文件夾。 這些文件夾甚至應該有自己的圖標。OSX:將特定文件夾與正在開發的應用程序相關聯
我已經能夠通過提供擴展名的文件夾並設置應用程序的Info.plist
文件的文檔類型部分來實現此目的。
不幸的是,我不想爲該文件夾添加擴展名,我想將常規文件夾與我的應用程序關聯。準確地說,我想關聯每個包含名爲「子文件夾」(例如)的子文件夾的文件夾。
有沒有辦法做到這一點?
你不應該這樣做(從用戶體驗的角度來看),你不能這麼做(從技術角度來看,除非你考慮將Finder修補爲一個選項)。
你究竟在努力實現什麼?將創建一個包/捆綁包並隱藏路徑擴展工作?你可以做到這一點通過NSFileManager
:
NSString *path = …;
NSDictionary *attributes = [NSDictionary dictionaryWithObject:[NSNumber numberWithBool:YES] forKey:NSFileExtensionHidden];
NSError *error = nil;
[[NSFileManager defaultManager] setAttributes:attributes ofItemAtPath:path error:&error];
要使用你的應用程序的現有文件夾關聯,你可以重命名文件夾有你的軟件包文件類型路徑擴展。
謝謝你的回答。不幸的是,我不能採用你建議的解決方案,因爲即使在只讀磁盤上我也需要執行文件夾應用程序關聯。我想要實現的是:我的應用程序處理放置在標準文件夾結構中的文件結構。我想雙擊包含整個文件和文件夾結構的主文件夾並啓動應用程序。 – Andrea3000 2012-03-04 19:24:17
你可以做到這一點,而不必通過設置文件夾的捆綁位給文件夾一個文件擴展名,這將使Finder將文件夾看作單個文件。 iPhoto通過其iPhoto Library文件夾執行此操作。我解釋瞭如何在[我對此問題的回答]中設置捆綁位(http://stackoverflow.com/a/2010698/50122)。 – 2012-03-05 03:29:49
但是這樣包仍然不會在您的應用程序中打開,或者我誤會了嗎?此外,這種方法也不適用於只讀卷。 – gcbrueckmann 2012-03-05 11:38:24
這似乎會爲用戶提供令人困惑的體驗。我不認爲它會在Finder中雙擊常規文件夾並讓它啓動一個外部應用程序。 – sbooth 2012-03-04 17:43:54
@sbooth:這可能是真的,但如果文件夾有一個自定義圖標,可以避免這種混淆,那麼我認爲它可以完成。你不覺得嗎? – Andrea3000 2012-03-04 18:11:54
否。文件夾是一個文件夾,否則會損壞Mac用戶體驗。 – 2012-03-05 03:27:04