2011-03-30 62 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