문제

여러 가지 가능한 필레 타입 (PDF, BMP, JPEG, WAV, MP3, DOC, MPEG, AVI 등)의 파일을 저장하는 이진 열이있는 테이블이 있지만 이름이나 유형을 저장하는 열이 없습니다. 원본 파일. 이 행을 처리하고 이진 열에 저장된 각 파일의 유형을 결정하는 쉬운 방법이 있습니까? 바람직하게는 파일 헤더 만 읽는 유틸리티 일 것이므로 유형을 결정하기 위해 각 파일을 완전히 추출 할 필요가 없습니다.

설명: 여기서 접근 방식은 각 파일의 시작 부분 만 읽는 것과 관련이 있습니다. 나는 너무 많은 소란없이 나를 위해 이것을 할 수있는 좋은 자원 (일명 링크)을 찾고 있습니다. 감사.

또한, 그냥 C#/. Windows에서 Net, 제발. 나는 Linux를 사용하지 않고 Cygwin을 사용할 수 없습니다 (Windows CE에서는 작동하지 않습니다).

도움이 되었습니까?

해결책

이 도구를 사용하여 파일 형식을 찾을 수 있습니다.

파일 분석기http://www.softpedia.com/get/programming/other-programming-files/file-analyzer.shtml

어떤 형식http://www.jozy.nl/whatfmt.html

PE 파일 형식 분석기http://peid.has.it/

이 웹 사이트는 귀하에게 도움이 될 수 있습니다.http://mark0.net/onlinetrid.aspx

참고 : 올바른 도구 이름과 정보를 얻을 수 있도록 다운로드 링크가 포함되어 있습니다.

다운로드하기 전에 소스를 확인하십시오.

나는 과거에 도구를 사용하여 파일 분석기라고 생각합니다.

행복한 툴링.

다른 팁

이것은 완전한 대답은 아니지만 시작할 곳은 "마법 숫자"라이브러리입니다. 이것은 "마법 번호"를 결정하기 위해 파일의 처음 몇 바이트를 검사하며, 이는 알려진 "마법 번호"를 결정합니다. 이것은 (적어도 부분) file Linux 시스템의 명령은 작동합니다.

다른 사람이 비슷한 질문을하고 정확히이를 수행하는 데 사용 된 코드를 게시했습니다. 여기에 게시 된 내용을 가져 와서 데이터베이스에서 가져 오도록 약간 수정할 수 있어야합니다.

https://stackoverflow.com/questions/58510

그 외에도 누군가가 마법의 숫자를 기반으로 도서관을 작성한 것처럼 보이지만 사이트에 등록이 필요한 것처럼 보이며이 라이브러리를 다운로드하기 위해 어떤 형태의 대체 액세스가 필요합니다. 문서는 등록없이 무료로 유용 할 수 있으며 도움이 될 수 있습니다.

http://software.topcoder.com/catalog/c_component.jsp?comp=13249160&ver=2

내가 아는 가장 쉬운 방법은 사용하는 것입니다 파일 Windows에서도 사용할 수 있음을 명령하십시오 Cygwin .

많은 파일 타입에는 파일을 시작하는 헤더가 잘 정의되어 있습니다. 처음 몇 바이트를 확인하여 파일의 시작 방법을 확인할 수 있습니다.

이를 수행하는 가장 쉬운 방법은 '파일'명령이있는 *nix (또는 cygwin) 시스템에 대한 액세스를 통과하는 것입니다.

$ file visitors.*
visitors.html: HTML document text
visitors.png:  PNG image data, 5360 x 2819, 8-bit colormap, non-interlaced

각 바이너리 열의 첫 번째 x 바이트를 파일 명령에 파이프 한 C# 응용 프로그램을 작성할 수 있습니다 (파일 이름으로 사용)

호출하려면 일부 p/interop 코드를 사용해야합니다. Shgetfileinfo Win32 API의 방법. 이것 기사 도울 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top