ZIP 파일을 추출하는 애플리케이션을 구축하는 동안 ZIP 파일에 디렉토리 항목이 명시적으로 포함되는 경우도 있고 그렇지 않은 경우도 있다는 사실을 발견했습니다. 예를 들어, 다음과 같은 구조가 주어지면
folder1/
└── file1
다음을 통해 내용을 나열할 때 다음과 같이 다른 출력을 제공하는 파일을 찾았습니다 unzip -lv file.zip
.
Length Method Size Cmpr Date Time CRC-32 Name
-------- ------ ------- ---- ---------- ----- -------- ----
5 Stored 5 0% 2023-04-20 13:54 3bb935c6 folder1/file1
-------- ------- --- -------
5 5 0% 1 file
Length Method Size Cmpr Date Time CRC-32 Name
-------- ------ ------- ---- ---------- ----- -------- ----
0 Stored 0 0% 2023-04-20 13:54 00000000 folder1/
5 Stored 5 0% 2023-04-20 13:54 3bb935c6 folder1/file1
-------- ------- --- -------
5 5 0% 2 files
두 번째 폴더에 명시적으로 지정된 폴더를 기록해 두세요.
여기서의 기준은 무엇입니까? 프로그램은 일반적으로 이 문제를 처리하는 방법에 대해 가정을 합니까? 둘 중 하나에 장점이 있나요?
답변1
기준이는 지정되지 않았지만 일반적으로 디렉터리 메타데이터도 저장할 수 있도록 디렉터리를 별도의 항목으로 저장하는 것입니다.
ZIP 파일 이후아니요개별 디렉토리 항목은 유효하며 프로그램은 어떤 방식으로든 이에 대해 가정을 해서는 안 됩니다.
(Info-Zip을 사용하는 경우 zip
이 -D
플래그는 저장소 디렉터리 항목을 건너뜁니다.)