如何通过仅使用文件扩展名来获取文件类型的描述,就像在Finder.app中一样?换句话说,我想在NSString中获取该字段:
答案 0 :(得分:3)
这里有一些快速“肮脏”的东西,说明了你的需求:
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]);
答案 1 :(得分:0)
您应该通过向NSWorkspace的localizedDescriptionForType:
提供文件通用类型标识符来获得该功能。