2014-02-18 3 views
0

파일 확장자 만 사용하여 Finder.app에서와 같이 파일 형식에 대한 설명을 어떻게 얻을 수 있습니까? 즉 나는있는 NSString에서 해당 필드를 얻으려면 :확장자로 파일 형식 설명 가져 오기

+0

@ Trudyscousin의 대답은 나에게 좋은 보이지만, 메모를 'file' 유틸리티는 명령 행에서 꽤 똑같습니다. – Cyrille

답변

3

여기 당신이 필요 보여 그 'N'더러운 빨리 좀 뭔가 :

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]); 
0

당신은 NSWorkspace의 localizedDescriptionForType:에 파일 보편적 인 유형 식별자를 제공하여 그것을 얻어야한다.

관련 문제