java - 在 java 中使用广度优先搜索方法搜索 ZipEntry
问题描述
我在寻找一种以广度优先搜索方式在 java 中遍历 ZipFile 的方法时遇到问题。
我发现使用 ZipInputStream 任一枚举方法获取所有条目都会以深度优先搜索方式对它们进行排序。我还检查了使用调试。
代码 1:
ZipInputStream zf = new ZipInputStream(inputStream);
ZipEntry[] entries;
ZipEntry zipEntry;
while ((zipEntry = zf.getNextEntry()) != null)
{
entries.add(zipEntry);
}
代码 2:
ZipEntry[] entries;
Enumeration<ZipEntry> enumeration = zipFile.entries();
while (enumeration.hasMoreElements())
{
entries.add(en.nextElement());
}
示例 zip 文件:
foo.zip
| -- folder1
| | -- file11
| | -- file12
| -- folder2
| | -- file21
| | -- file22
| -- lorem.txt
我想按以下顺序获取条目:
1. folder1/
2. folder2/
3. lorem.txt
4. folder1/file11
5. folder1/file12
6. folder2/file21
7. folder2/file22
等等...
但相反,我得到的是:
1. folder1/
2. folder1/file11
3. folder1/file12
4. folder2/
5. folder2/file21
6. folder2/file22
7. lorem.txt
有谁知道我怎样才能实现我的目标?
解决方案
推荐阅读
- dart - 如何在 VSCode 中配置 IntelliSense,以便在创建类或构造函数时为 Dart 类名提供建议?
- postgresql - 如何将 JSONB 对象中的现有时间戳更改为 Postgresql 中的另一种时间戳格式
- java - 使用自定义方法和 JpaRepository 实现接口
- java - 由于您尚未通过服务器“ge.spring.io”进行身份验证,因此未发布构建扫描
- javascript - React Hooks: Uncaught TypeError: setData({...}) is not a function
- python - 我想抓取网页,但是找不到 html 代码
- sql - 按降序排列时的百分比增加/减少读数 9% 为 90%
- php - 将数据库连接放在单独的文件中后,Mysqli real_escape_string 验证不起作用
- javascript - 在 html nodemailer 中输出 base64 图像
- c# - 在 ASP.NET MVC 中的上传文件中使用 TempData