2016-09-01 10 views
0

안녕하세요 여러분 확장자가없는 파일 형식의 파일 유형을 알고 싶었던 상황에 처해있었습니다. 지금까지 모든 파일이 UTI 식별자 및 확장과 연관되어 있음을 안다.파일 확장자를 사용할 수없는 경우 파일 형식을 얻는 방법

1. 내 경우 파일 확장명을 사용할 수 없으므로 질문하지 않습니다.

2. 파일에는 확장자가 없습니다. One of stack overflow reference

Article over dynamic UTI

나도 여기에 있었다 그러나 나는이 없거나 익명 방향으로 가고 뭔가가 추측 한 Apple documentation over file system over O.S

.

귀하의 도움을 받아야합니다.

+0

일반적으로 확장명이없는 경우 파일 형식이 무엇인지 추측해야합니다. 리눅스는'libmagic'을 사용하여 파일 내용을 검사하여 파일 유형을 결정합니다. bsd 명령'magic'도 있습니다.'file --mime-type * '을 실행하면 현재 디렉토리의 모든 파일에 대해 MIME 유형 (예 : image/png)을 얻으려고 시도합니다. – Petesh

+0

@Petesh 답장을 보내 주셔서 감사합니다.이 순간에도 동일한 작업을하고 있지만 사전 정의 된 방법으로 파일 형식을받을 수있는 기회가 생기면 생각하고있었습니다. "public.data"에서 내 파일의 UTI를 가져올 수 있지만 이미지 형식이므로 public 형식의 이미지를 제공해야 이미지 형식 파일이라는 것을 확인할 수 있습니다. 그래서 만약 확장자가없는 파일 형식의 파일을 얻는 것이 가능하다면 어떤 생각이 든다. –

+0

확장자가 없으면 기본적으로 UTI는 'public.data'가됩니다.문제가 무엇인지 이해하는 데 어려움을 겪고 있습니다. 파일을 검사하지 않고 파일에 대해 UTI를 만들 수는 없습니다. 기대에 기반을 둔 확장 기능이없는 경우에는이 바로 가기가 실제로 없습니다. – Petesh

답변

-1

이 시도 할 수 있습니다 :

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, 
                NSUserDomainMask, YES); 
NSString *documentsDirectory = [paths objectAtIndex:0]; 
NSArray *directoryContent = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:documentsDirectory error:nil]; 
NSString *fileName = @"YOUR_FILE_NAME"; 
for (NSString *file in directoryContent) 
{ 
    NSString *fileNameWithOutExt= [file stringByDeletingPathExtension]; 
    if([fileName isEqualToString:fileNameWithOutExt]) 
    { 
     NSLog(@"Found"); 
    } 
} 
+0

나는 파일 pal의 내용 유형을 원한다. 나는 동일한 파일을 찾고 있지 않다 ... 당신은 확장자가없는 사파리의 캐시 파일을 볼 수 있으며 그 파일 유형을 찾고있다. –

0

요로 감염은 주로 예를 들어, 응용 프로그램 사이에서 입력 데이터의 전달을 할 수 있도록 설계되어 있습니다 클립 보드를 통한 이미지 전송 데이터에 적절한 UTI가 태그되어 있으면 해당 유형의 데이터를 처리 할 수있는 소비자가 사용할 수 있습니다.

데이터를 붙여 넣기하는 응용 프로그램은 적절한 UTI (placed onto the pasteboard)를 결정해야합니다.

파일에 대해 UTI를 결정하면 운영 체제에서이 값이 from the extension that is used이됩니다. 이것은 운영 체제가 파일을 볼 때 UTI를 결정하는 데 사용하는 유일한 소스입니다. 파일의 확장자가 없으면 UTI public.data이 부여됩니다.

대신 Mac OS X은 UTI를 다른 정보 (주로 파일 이름 확장자에서 tragically)에서 파생시킵니다.

UTI는 파일 확장자 형식을 제외하고는 파일 시스템의 어떤 형식으로도 저장/캐시/유지되지 않습니다.

파일 확장명을 사용하는 것 외에 사용할 수있는 유일한 방법은 file 같은 도구를 사용하거나 파일 번호를 확인하기 위해 파일 프로그램의 배포판에있는 libmagic 라이브러리를 사용하는 것입니다.