2012-04-26 6 views
3

안녕하세요 내 응용 프로그램에서 파일 형식을 검색하고 싶습니다. libmagic은 그렇게 할 수있는 옵션입니다. 하지만 난 예를 들어, 문자열 비교하는 의도하고 있지 않다실제 파일 형식 검색

libmagic를 사용하여 MP3 파일 출력 : ID3 버전 2.3.0와 오디오 파일이 포함되어 MPEG ADTS, 레이어 III, V1, 128 kbps로, 44.1 kHz로, JntStereo

에는 True File Type Detection을위한 다른 라이브러리가 있습니까?

도움을 주시면 감사하겠습니다.

+0

'(MIME 유형, 기본 확장명, 세부 정보 등) 검색 결과로 어떤 종류의 구조가 필요합니까? –

+0

번호가있는 경우에만 번호를 원합니다. – iyasar

+0

어떤 숫자입니까? –

답변

3

당신은 File Signature Table

예를 사용하여 자신에 의해이를 구현을 시도 할 수 있습니다 : 당신은 잘못 파일 형식의 집합을 열거 할 것으로 추정

Hex Signature  File Extension   ASCII Signature, File Description 

49 44 33      MP3   ID3 
               MPEG-1 Audio Layer 3 (MP3) audio file 

43 44 30 30 31     ISO   CD001 
               ISO-9660 CD Disc Image 
               This signature usually ... 
+0

완벽하지만 우리는 여기에 유지 보수 문제가 있습니다. 개발자는 유지 관리를 위해 항상 해당 파일에 관심을 가져야합니다. mime-type을 선택했는데 정수 비교와 같이 효과적이지는 않지만 다른 하나 (긴 파일 설명 비교)가 더 효과적입니다. – iyasar

1

. 그것은 단지 파일이 작동하는 방식이 아닙니다. .mp3 파일 (오디오)에 대한 예는 자연스럽게 비디오로 연결됩니다. .AVI, .MKV, MPEG1, MPEG2 및 MPEG4 비디오 간의 관계는 무엇입니까? 그 관계를 하나의 숫자로 포착 할 수는 없습니다.

마찬가지로 .ISO는 DVD와 같은 파일 형식입니다 .ISO? 동일한 번호를 할당해도됩니다. 그리고 대답은 과 같은 것으로 간주되기 때문에 구체적으로 ""이라고 썼습니다.

+0

정수 비교 대신 MIME 유형을 선택했습니다. 당신의 답변에 감사드립니다. – iyasar

+0

그래도 여전히 _detection_ 문제에 대한 해결책은 없습니다. – MSalters

+0

100 % 정확도가 필요하지 않습니다. – iyasar