Java 如何检查zip文件中的某些文件是否已损坏
file_corrude_inside.zip中有1个损坏的word文件,但我可以将其压缩并打开*.zip文件 corruptedfile.zip是一个损坏的zip文件,我们无法打开它。 结果是:Java 如何检查zip文件中的某些文件是否已损坏,java,zip,Java,Zip,file_corrude_inside.zip中有1个损坏的word文件,但我可以将其压缩并打开*.zip文件 corruptedfile.zip是一个损坏的zip文件,我们无法打开它。 结果是: import java.io.File; import java.io.IOException; import java.util.zip.ZipFile; import java.util.zip.ZipException; public class testlog4j { public
import java.io.File;
import java.io.IOException;
import java.util.zip.ZipFile;
import java.util.zip.ZipException;
public class testlog4j {
public static void main(String[] args) {
System.out.println(testlog4j.isCorrupted("C:\\Trigger\\file_corrupted_inside.zip"));
System.out.println(testlog4j.isCorrupted("C:\\Trigger\\corruptedfile.zip"));
}
public static boolean isCorrupted(final String string) {
ZipFile zipfile = null;
try {
zipfile = new ZipFile(string);
return false;
} catch (ZipException e) {
System.out.println(e);
return true;
} catch (IOException e) {
System.out.println(e);
return true;
} finally {
try {
if (zipfile != null) {
zipfile.close();
zipfile = null;
}
} catch (IOException e) {
System.out.println(e);
}
}
}
zip条目只是一个字节数组,它不关心这些字节代表什么数据。要检查word文件是否已损坏,您必须手动将这些字节提取到文件中并使用java打开它,或者使用解析文件并处理这些字节exceptions@Syncit,我试图生成一个已损坏的文件(损坏量为1%),我看到文件大小已更改,然后我使用校验和来比较前后压缩文件。成功了。我不知道我是否在什么地方错了。很高兴我能给你一些见解。请发布一个简单的代码示例,说明什么对你有用,作为答案,这样不仅可以帮助他人,还可以为你赢得一些声誉
false
java.util.zip.ZipException: error in opening zip file
true