Convert Zip to Store compression

Viewed 1198

I have a zip file file.zip that is compressed. Is there a way to change the compression level of the file to store (no compression).

I have written and tried the following code and it works, but I will be running this in an environment where memory and storage will be a limitation and there might not be enough space. I am using the zip4j library.

This code extracts the input zip to a folder, then rezips it with store compression level. The problem with this is that at one point in execution, there are 3 copies of the zip on storage, which is a problem because space is a limitation.

try {
            String zip = "input.zip";
            final ZipFile zipFile = new ZipFile(zip);
            zipFile.extractAll("dir");
            File file = new File("dir");
            ZipParameters params = new ZipParameters();
            params.setCompressionMethod(Zip4jConstants.COMP_STORE);
            params.setIncludeRootFolder(false);

            ZipFile output = new ZipFile(new File("out.zip"));

            output.addFolder(file, params);
            file.delete();
            return "Done";
        } catch (Exception e) {
            e.printStackTrace();
            return "Error";
        }

So any suggestions on another way to approach this problem? Or maybe some speed or memory optimizations to my current code?

2 Answers
Related