重新创建目录结构并从 Java 中的 zip 文件的字节数组中提取文件

Recreate Directory Structure and extract Files From byte array of a zip file in Java

我有一个 zip 文件的字节数组,我需要从中创建 zip 文件,然后解压缩其中的文件和文件夹。

我尝试这样做,但得到的 zip 条目为空

{
ResponseEntity<byte[]> result = restTemplate.exchange(builder.build().toString(), HttpMethod.GET, httpEntity, byte[].class);
    ZipInputStream zipStream = new ZipInputStream(new ByteArrayInputStream(result.getBody()))
    ZipEntry entry = null;
    while ((entry = zipStream.getNextEntry()) != null)
}

Zip 文件就像

提前致谢

好的,我成功地以编程方式下载了您上面 link 的文件:

        List<MediaType> acceptableMediaTypes = new ArrayList<MediaType>();
        acceptableMediaTypes.add(MediaType.APPLICATION_OCTET_STREAM);
        HttpHeaders headers = new HttpHeaders();
        headers.setAccept(acceptableMediaTypes);
        RestTemplate restTemplate = new RestTemplate();
        HttpEntity<String> httpEntity = new HttpEntity<String>(headers);
        ResponseEntity<byte[]> result = restTemplate.exchange( "someurl deleted On purpose",
                                                               HttpMethod.GET,
                                                               httpEntity,
                                                               byte[].class );

        ZipInputStream zipStream = new ZipInputStream(new ByteArrayInputStream(result.getBody()));
        ZipEntry entry = null;
        while ((entry = zipStream.getNextEntry()) != null)
        {
            System.out.println( "entry: " + entry );
        }

输出为:

entry: bridge2cart/
entry: bridge2cart/config.php
entry: bridge2cart/bridge.php
entry: readme.txt

所以您可能没有请求正确的媒体类型,或者 URL 编码不正确。