Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/347.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/apache-flex/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何检查zip文件中的某些文件是否已损坏_Java_Zip - Fatal编程技术网

Java 如何检查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

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 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