Я как бы застрял в этой проблеме. Я хочу напечатать только каталог верхнего уровня из zip-файла. Например, у меня есть почтовый файл со следующей структурой:Java получить папку верхнего уровня из zip-файла
Sample.zip
- sound
- game
-start.wav
-end.wav
- Intro
- custom
- Scene
- fight
- Angle
..............
Над фигуры показывает: Sample.zip имеет 2 папки (звуковые и пользовательскую), так и внутри звука есть 2 папки игра и вводные и так далее .. .
Теперь я знаю, как открыть и захватить каталог из архива: для примера (рабочий код)
try {
appFile = ("../../Sample.zip"); // just the path to zip file
ZipFile zipFile = new ZipFile(appFile);
Enumeration<? extends ZipEntry> entries = zipFile.entries();
while (entries.hasMoreElements()) {
ZipEntry entry = entries.nextElement();
if(entry.isDirectory()){
String dir = entry.getName();
File file = new File(dir);
System.out.println(file.getParent());
}
}
} catch (IOException e) {
System.out.println("Error opening Zip" +e);
}
Теперь я знаю, что я могу использовать .getParent()
(как вы видите выше), чтобы получить верхнюю но вышеприведенная реализация не сработала. Это будет список из всех каталогов, например
null
sound
game
null
custom
scene
Angle
Мой вопрос, как я могу на самом деле печатать только папки верхнего уровня, в приведенном выше сценарии, sound
и custom
?
Для любого намека я буду благодарен.
@Ducan: Я обновил этот вопрос с тем, что не работает (выход). – Nepal12
Начните с печати имени всех записей. Затем напечатайте только имя записей, которые являются каталогами. Теперь прочитайте вывод и попытайтесь найти, как можно отличить запись каталога верхнего уровня от записи каталога верхнего уровня. –