Article View: pl.comp.lang.java
Article #153869Re: Chodzenie po katalogach i po archiwum
From: Arivald
Date: Sat, 14 Sep 2013 20:17
Date: Sat, 14 Sep 2013 20:17
49 lines
3185 bytes
3185 bytes
W dniu 2013-09-14 15:32, Borneq pisze: > Pobierać listę plików dla danego katalogu można używając > File[] filesAndDirs = dir.listFiles(); gdzie dir jest klasy File > lub > File[] filesAndDirs = fileSystemView.getFiles(currentDirectory, false); > gdzie currentDirectory jest typu File > To drugie rozwiązanie jest lepsze, bo zmieniając > currentDirectory = fileSystemView.getParentDirectory(currentDirectory); > nie ma problemu gdy idziemy wyżej niz był nasz pierwszy katalog, a w > pierwszym rozwiązaniu bywały problemy. Problemy? File.getParentFile() zawsze działa. > Tymczasem gdy chcę się poruszać w archiwum a metoda listująca daje mi > listę ścieżek, tworzę swoją klasę np. nazywając ją TreeFile, wypełniam > ją ścieżkami, sortuję itd. > A teraz pobieranie listy plików i katalogów > filesAndDirs = treeFile.getFiles(currentDirectory) > Jak to najlepiej rozwiązać? czy filesAndDirs ma być typu File[] ? ale > wówczas currentDirectory oznaczający katalog w archiwum też ma być typu > File.Ale wówczas chyba jest źle bo File oznaczają rzeczywiste pliki. Czy > też wprowadzić elementy typu TreeFileItem implementujące Comparable? ale > wówczas będą potrzebne zupełnie rózne metody do chodzenia po > rzeczywistych katalogach a inne po archiwum. Trochę nie tak. Po pierwsze, nie próbuj tworzyć wspólnego interfejsu z File i czymś do archiwów. Raczej zrób owijki do obu, ze wspólnym interfejsem, i tego interfejsu używaj dalej w kodzie. Tzn prawdopodobnie masz już gotową bibliotekę do archiwów, z obiektowym dostępem do plików wewnątrz. Nie ma sensu pisać tego samemu. Więc stwórz interfejs (np MyFile), ze wszystkimi metodami które musisz mieć w aplikacji. I tylko takimi które muszą być, nie sil się na pisanie metod których i tak nie użyjesz. Zawsze możesz potem dodać nowe metody. W następnym kroku piszesz dwie owijki, implementujące MyFile. Jedna będzie przekazywać i tłumacvzyć wywołania interfejsu MyFile do java.io.File, a druga do obektu pracujęcego archiwum. I teraz dodanie obsługi nowego typu archiwum sprowadza się do dodanie nowej klasy owijki inplementującej MyFile. -- Arivald
Technical Details
Message-ID:
<l12gel$9lv$1@news.dialog.net.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!news.cyf-kr.edu.pl!news.nask.pl!news.nask.org.pl!newsfeed.pionier.net.pl!news.dialog.net.pl!not-for-mailReferences:
<l11oi9$6l3$1@node1.news.atman.pl>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!news.cyf-kr.edu.pl!news.nask.pl!news.nask.org.pl!newsfeed.pionier.net.pl!news.dialog.net.pl!not-for-mail From: Arivald <NOSPAMarivald@interia.pl> Newsgroups: pl.comp.lang.java Subject: Re: Chodzenie po katalogach i po archiwum Date: Sat, 14 Sep 2013 22:17:36 +0200 Organization: Dialog Net Lines: 50 Message-ID: <l12gel$9lv$1@news.dialog.net.pl> References: <l11oi9$6l3$1@node1.news.atman.pl> NNTP-Posting-Host: dynamic-78-8-141-49.ssp.dialog.net.pl Mime-Version: 1.0 X-Trace: news.dialog.net.pl 1379190037 9919 78.8.141.49 (14 Sep 2013 20:20:37 GMT) X-Complaints-To: abuse@dialog.net.pl NNTP-Posting-Date: Sat, 14 Sep 2013 20:20:37 +0000 (UTC) User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:24.0) Gecko/20100101 Thunderbird/24.0 In-Reply-To: <l11oi9$6l3$1@node1.news.atman.pl> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit