2
我正在尝试获取给定文件的文件类型(列表视图中的Finder中显示的文件类型)。有没有简单的方法来实现这一点?在Mac OS中获取文件类型
我正在尝试获取给定文件的文件类型(列表视图中的Finder中显示的文件类型)。有没有简单的方法来实现这一点?在Mac OS中获取文件类型
看看NSWorkspace的-typeOfFile:error:
和-localizedDescriptionForType:
方法。这里有一个命令行工具的一个简单的例子,当你运行它,将打印您作为参数指定的文件的信息:
#import <Cocoa/Cocoa.h>
int main (int argc, const char * argv[])
{
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
if (argc > 1) {
for(int i = 1; i < argc; ++i) {
NSString *theFile = [NSString stringWithFormat:@"%s", argv[i]];
NSWorkspace *ws = [NSWorkspace sharedWorkspace];
NSString *fileType = [ws typeOfFile:theFile error:nil];
NSString *fileDesc = [ws localizedDescriptionForType:fileType];
NSLog(@"File:%@ Type:%@ Description:%@", theFile, fileType, fileDesc);
}
}
[pool drain];
return 0;
}
注意Xcode的默认“命令行工具”项目只链接到基金会 - 你如果你想构建上面的例子,需要将#include改为Cocoa,并添加Cocoa.framework。你可能不需要构建它 - 它很简单,你可能会得到你所需要的信息而没有做到这一点。
+1;比我快半分钟。 ;) – Wevah 2011-03-30 20:21:59
Wery很好的答案和解释!非常感谢。 – 2011-04-01 05:19:29