2015-01-19 2 views
1

nodejs에 다른 파일 유형 (예 : tar, tar.gz 등)의 압축을 풉니 다.압축 해제하지 않고 압축 유형을 확인하는 방법은 무엇입니까?

나는 사용할 수있는 파일 이름이 없습니다.

현재 압축을 풀기 위해 무차별 공격을 사용합니다. 성공한 첫 번째 작품이 우승합니다.

미리 압축 유형을 알고 개선하고 싶습니다. 이렇게하는 방법이 있습니까?

+0

가능한 [파일에 사용 된 압축 유형을 감지하는 방법? (파일 확장명이 지정되지 않은 경우)] (http://stackoverflow.com/questions/19120676/how-to-detect-type-of-compression-used-on-the-file-if-no-file-extension- is-spe) – Mels

+0

@Mels Answers는 하드 코드 상수, 새롭게 도입되지 않길 바래요, OS 고유의 도구를 사용하는 것을 포함합니다. 5 번 째와 같이 Node.js에 * file * 모듈이 필요한 사람들을 보았지만 아무 것도없는 것처럼 보입니다. – alandarev

+0

@alandarev * [libmagic/libfile binding for node] (https://github.com/mscdex/mmmagic)가 꽤 오랫동안있었습니다. – mscdex

답변

3

"brute force"접근법은 실제로 매우 잘 작동합니다. 소프트웨어가 대개 처음 몇 바이트 내에서 엄청나게 빨리 결정할 것이기 때문에 잘못 처리 된 것입니다. 일할 것을 제외하고.

일반 형식의 접두사 바이트 목록은 this answer을 참조하십시오. 압축 된 형식으로 tar 형식을 검색해야하는데 여기에는 자세한 형식이 나와 있지 않습니다. 일치하는 접두사를 찾더라도 여전히 가설을 테스트하기 위해 압축을 풀고 디코딩해야합니다. 이는 본질적으로 당신의 무차별 방식입니다.

관련 문제