현재 하나의 Node.js 프로젝트에서 작업 중입니다. ZIP 파일을 FS에 저장하지 않고 (수정 한 후에 TCP로 수신하고 다시 보내면) ZIP 파일을 읽고 수정하고 쓸 수있는 기능을 원합니다. 그리고 지금까지는 간단한 ZIP 파일 구조의 가능한 일시적인 것으로 보입니다. 현재 나는 this documentation을 참조합니다.ZIP 파일 형식입니다. 파일을 올바르게 읽는 방법?
그래서 ZIP 파일은 간단한 구조를 가지고 우리가 필드 compressed size
을 포함 파일 헤더를 읽을 필요가
File header 1
File data 1
File data descriptor 1
File header 2
File data 2
File data descriptor 2
...
[other not important yet]
먼저, 그리고 그것의 길이에 의해 file data 1
을 읽을 수있는 완벽한 방법이 될 수 있습니다. 그러나 실제로는 그렇지 않습니다. 이 필드에는 '0'또는 '0xFFFFFFFF'가 포함될 수 있으며 그 값은 실제 길이를 설명하지 않습니다. 이 경우 길이에 대한 정보없이 파일 데이터를 읽어야합니다. 그러나 어떻게 ..?
압축/해독 알고리즘에 대한 설명은 나에게 매우 복잡해 보이며 어쨌든 압축 자체에 ZLIB를 사용할 계획입니다. 유용한 정보가 거기에 설명되어 있다면, 나는 그 요점을 놓쳤다.
누군가 해당 파일을 읽을 수있는 적절한 방법을 설명 할 수 있습니까?
P. npm 모듈을 제안하지 마십시오. 나는 문제를 해결하는 것뿐만 아니라, 어떻게 일을하는지 이해하기를 원한다.