2012-12-12 3 views
16

ZIP 항목은 전체 경로 이름을 저장합니다. 왜냐하면 ZIP 보관 파일이 디렉토리로 구성되어 있지 않기 때문입니다. 메타 데이터에는 파일 저장 방법 (디렉토리 내부)에 대한 정보가 들어 있습니다.ZipEntry 경로 이름의 파일 구분 기호?

Windows에서 ZIP 파일을 만들면 다른 OS에서 데이터의 압축을 풀 때. Mac OS X에서는 파일 구조가 이전처럼 Windows에서 유지됩니다. ZIP 안의 파일 분리 기호가 표준이기 때문에 unzipper가 이것을 처리하도록 설계 되었기 때문입니까?

나는 ZIP 파일 안에 ZIP 파일의 이름을 사용하여 항목을 찾으려고하기 때문에이 질문을 받는다. 그러나 Windows 이외의 시스템에서 작동되게하려면 파일 분리자를 사용해야합니까?

나는 자바를 사용하고, 방법있어 다음 ZipEntry.getName()이 나에게 Windows 파일 분리 \를 사용하여 경로를 제공합니다. Java File.separator 구분 기호를 사용하여 다른 OS에서 작동하게해도 충분합니까? 아니면 가능한 구분 기호로 파일을 찾으려고합니까?

+0

그래서 압축을 풀 때 절대 경로로 파일을 압축 해제 하시겠습니까? – vels4j

+0

아니요, 문제는, 파일을 검색하는 동안 내 경로에 파일 구분 기호를 설정해야 운영 체제가 내 응용 프로그램의 plataform과 상관없이 작동합니다 ... – Ordiel

답변

11

파일 구분 기호는 zip 파일을 만드는 응용 프로그램에 따라 다릅니다. 일부 응용 프로그램은 시스템 파일 분리 기호를 사용하지만 일부는 "문명화 된"슬래시 "/"를 사용합니다. 따라서 zip 파일을 만든 다음이를 소비하는 경우 파일 구분자로 슬래시를 사용하면됩니다. zip 파일이 다른 곳에 작성되면 사용 된 구분 기호를 찾아야합니다. 나는 간단한 방법을 모른다. 그러나 당신은 진부한 방법을 사용하고 당신이 진보함에 따라 두 구분자 유형을 모두 체크 할 수있다.

일부 응용 프로그램, 특히 맞춤 우편 생성 코드는 다른 우편 번호 항목에 구분 기호를 혼합 할 수 있으므로 각 항목을 체크 아웃하는 것을 잊지 마십시오.

5

.zip file specification 상태 :

4.4.17.1 옵션 상대 경로로 파일의 이름입니다. 저장된 경로에 드라이브 또는 장치 문자 또는 선행 슬래시가 포함되어서는 안됩니다. 모든 슬래시 은 Amiga 및 UNIX 파일 시스템 등과의 호환성을 위해 백 슬래시 '\'와 반대되는 슬래시 '/'이어야합니다. 입력이 표준 입력에서 나온 경우에는 파일 이름 필드가 없습니다.