在Java中使用广度优先搜索方法搜索ZipEntry

时间:2019-01-10 12:40:50

标签: java zip breadth-first-search zipfile

我在寻找一种以广度优先搜索方式遍历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

有人知道我如何实现我的目标吗?

0 个答案:

没有答案