2011-03-30 61 views
2

我正在尝试获取给定文件的文件类型(列表视图中的Finder中显示的文件类型)。有没有简单的方法来实现这一点?在Mac OS中获取文件类型

回答

3

看看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。你可能不需要构建它 - 它很简单,你可能会得到你所需要的信息而没有做到这一点。

+0

+1;比我快半分钟。 ;) – Wevah 2011-03-30 20:21:59

+0

Wery很好的答案和解释!非常感谢。 – 2011-04-01 05:19:29