首页 > 解决方案 > 使用 ProcessBuilder 修复损坏的 zip 文件

问题描述

当我在 Mac 终端中执行“zip -FF /Users/myZip.zip?--out Users/myFixed.zip”时,损坏的 zip 文件已修复。当我尝试修复与下面相同的损坏的 zip 文件时,它给了我以下错误。

请分享您的意见以解决此问题。

编码:

ProcessBuilder pb1 = new ProcessBuilder("bash", "-c", "zip -FF/Users/myZip.zip 
   --out /Users/myFixed.zip");
   pb1.redirectErrorStream(true);
   Process p =pb1.start();

错误信息:

1 Fix archive (-FF) - salvage what can
2   zip warning: could not open input archive: /Users/myZip.zip
3 Scanning for entries... 
4  Could not find: /Users/myZip.z01
5
6 
7 Hit c      (change path to where this split file is)
8     s      (skip this split)
9     q      (abort archive - quit)
10    e      (end this archive - no more splits)
11    z      (look for .zip split - the last split)

标签: javazipcorrupt

解决方案


每个参数应该是不同的字符串

例如

ProcessBuilder pb1 = new ProcessBuilder("bash", "-c", "zip", "-FF", "/Users/myZip.zip", 
   "--out", "/Users/myFixed.zip");

推荐阅读