Jak przeglądać pliki w archiwum

0

Witam.
Chciałbym napisać taki program który umożliwiłby przeglądanie zawartości pliku zip tak jak to robi winrar.
Wczytuje do programu archiwum i widać hierarchie plików, tak jak zostały one spakowane.
Jak się w ogolę za to zabrać? Jak wykorzystuję Entries to dostaję od razu wszystkie pliki jak zostały spakowane. Czy na ich podstawie trzeba zrobić jakieś drzewo reprezentujące ich hierarchie? Czy da się to inaczej zrobić?

0

Tworzenie archiwum Zip jak masz entry to możesz je zmapować sobie na "spakowany system plików" i poruszać się po nim jak po drzewie wyciągając odpowiednie fragmenty.

0

Witam ponownie, mam jeszcze jedno pytanie. Jak pakuje pliki to potem przy odczytywaniu za pomoca entries dostaje cos w ten deseń

wordpress.htaccess
wordpress\index.php
wordpress\license.txt
wordpress\readme.html
wordpress\wp-activate.php
wordpress\wp-admin\about.php
wordpress\wp-admin\admin-ajax.php
wordpress\wp-admin\admin-footer.php
wordpress\wp-admin\admin-functions.php
wordpress\wp-admin\admin-header.php
wordpress\wp-admin\admin-post.php

Nie odczytuje nigdy folderow jak np. wordpress co znacznie utrudnia budowanie drzewa.
Dla przykładu ten sam program odczytujący wyniki z WinRara daje

wordpress
wordpress.htaccess
wordpress\index.php
...

ZipEntry entry = new ZipEntry(source.substring(source.lastIndexOf(File.separator)+1)+File.separator+entryName);

tak dodaje entry do archiwum. source to np C:\wordpress a entryName to sciezka do pliku (file.getAbsolutePath().replace(source+File.separator, "")

0

Możesz użyć split by stworzyć sobie ścieżkę do pliku. BTW, zawsze można samodzielnie zaimplementować http://docs.oracle.com/javase/7/docs/api/java/nio/file/FileSystem.html do obsługi zipów.

Zresztą jest już gotowiec http://docs.oracle.com/javase/7/docs/technotes/guides/io/fsp/zipfilesystemprovider.html

1 użytkowników online, w tym zalogowanych: 0, gości: 1