2014-02-18 61 views
0

如何通過僅使用文件擴展名來獲取文件類型的描述,就像它在Finder.app中所做的一樣?換句話說,我想在NSString的那場:通過擴展獲取文件類型描述

+0

雖然@ Trudyscousin的答案似乎對我好,記'file'工具在命令行上完全相同。 – Cyrille

回答

3

這裏有一個小東西快速「N」髒,說明你所需要的:

NSOpenPanel *openPanel = [[NSOpenPanel alloc] init]; 

[openPanel runModal]; 

NSString *path = [[openPanel URL] path]; 
NSString *type = [[NSWorkspace sharedWorkspace] typeOfFile:path error:NULL]; 

NSLog(@"%@", [[NSWorkspace sharedWorkspace] localizedDescriptionForType:type]); 

開啓面板讓您選擇一個文件。 NSWorkspace規定首先確定文件的UTI(給定其路徑),然後使用UTI獲取描述文件類型的本地化字符串。

編輯:

如果你正已得到了僅使用文件擴展名,然後用這三條線來代替上述的最後三個:

NSString *extension = [[[openPanel URL] path] pathExtension]; 
CFStringRef uti = UTTypeCreatePreferredIdentifierForTag(kUTTagClassFilenameExtension, (__bridge CFStringRef) extension, NULL); 

NSLog(@"%@", [[NSWorkspace sharedWorkspace] localizedDescriptionForType:(__bridge NSString *) uti]); 
0

你應該得到的是通過提供文件的普及型標識符NSWorkspace的localizedDescriptionForType:

相關問題