gpt4 book ai didi

java - 遍历 zip 文件 java 中的所有目录

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:18:35 24 4
gpt4 key购买 nike

我目前正在开发一种工具,可以修改 zip 文件的 md5。该文件的目录结构如下所示

          baselines->
models -> icons ->
lang ->
(a bunch of files here)

但是,当我运行我的代码时,这些目录都没有被迭代到。输出给我:

Name:model/visualization_dependency.xml
Name:model/visualization_template.xml
Name:model/weldmgmt_dependency.xml
Name:model/weldmgmt_template.xml

我原以为输出中会出现类似 model/baseline/somefile.xml 的内容,但实际上并没有。有什么想法吗?

byte[] digest = null;
MessageDigest md5;

try {
md5 = MessageDigest.getInstance("MD5");

ZipEntry current;
while((current = entry.getNextEntry()) != null){

//ZipEntry current = entry.getNextEntry();
System.out.println("Size:" + current.getSize());
System.out.println("Name:" + current.getName());

if(current.isDirectory()){
digest = this.encodeUTF8(current.getName());
md5.update(digest);
}
else{
int size = (int)current.getSize();
digest = new byte[size];
entry.read(digest, 0, size);
md5.update(digest);
}
}
digest = md5.digest();
entry.close();
} catch (NoSuchAlgorithmException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

最佳答案

检查现有文件夹是否为目录后,您需要迭代遍历目录中的每个文件并处理其中的每个文件。

例子:

if(current.isDirectory()){
System.out.println("Directory: " + file.getName());
//Get list of files by file.listFiles() and pass it to
// to other method that will do processing.
digest = this.encodeUTF8(current.getName());
md5.update(digest);
}

检查这个问题,它详细说明了过程。 Iterating inside directories in Java

关于java - 遍历 zip 文件 java 中的所有目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11004811/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com