在Mac OS中获取文件类型

时间:2011-03-30 19:44:22

标签: objective-c cocoa file

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

1 个答案:

答案 0 :(得分: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的默认“命令行工具”项目仅链接到Foundation - 您需要将其#include更改为Cocoa,如果要构建上述示例,则添加Cocoa.framework。你可能不需要构建它 - 它很简单,你可以在不这样做的情况下获得你需要的信息。