2011-09-17 4 views
1

TAR 파일의 수뿐만 아니라 GZIP 파일에 TAR 파일의 이름을 가져 오는 Java API가 있는지 궁금합니다. 그 안에.TAR 수뿐만 아니라 GZIP에서 TAR 이름을 얻는 방법

이 내가

내가 적절한 TAR 파일의 압축을 해제하고있어 경우 확인해야
FileInputStream fis = new FileInputStream(new File(sourceFile)); 
    GZIPInputStream gin = new GZIPInputStream(fis); 
    TarInputStream tin = new TarInputStream (gin); 

    TarEntry tarEntry = tin.getNextEntry(); 

TAR 파일의 파일/디렉토리에 액세스하는 방법입니다 (확실하지 여러 타르가 GZIP에서 허용되는 경우) 그래서 나는 그 이름에 대한 정보가 필요합니다. 또한 TAR 파일이 하나만 있는지 확인해야하므로 TAR 수가 필요합니다.

+0

GZIP 압축 파일에는 하나의 .tar 만있을 수 있습니다. –

답변

1

GZIP 파일에는 실제로 도움이되지 않는 원래 파일 이름을 포함한 일부 메타 정보가 포함될 수 있지만, 이 파일 이름은 많은 경우에 유효하지 않습니다. 왜냐하면 gzip (1)은 파일을 만들 때 파일 시스템에서가 아니라 파이프 파일 핸들을 통해 데이터를 얻었 기 때문에 이름을 알지 못하기 때문입니다.

따라서 gzip 파일의 이름은 ".gz"가 붙거나 원래대로 ".tar"접미어를 ".tgz"로 대체하여 원래 파일 이름과 동일합니다.

GZIP 파일에는 하나의 데이터 스트림 (일명이 경우 파일) 만 포함 할 수 있으므로 하나의 TAR 파일 만 포함 할 수 있습니다. 이것은 물론 누군가가 여러 파일을 연결하고 결과에 gzips를 호출하고 ".tar.gz"또는 ".tgz"이름을 지정하는 악의적 인 경우를 제외합니다.

0

두 번째 부분에 대한 대답은 GZIP 파일에 하나의 파일 만 포함된다는 것입니다. (가상으로) 하나 이상의 파일 (타르 또는 다른 파일)을 포함했다면, 그것들을 분리하는 쉬운 방법이 없을 것입니다.

관련 문제