Java, przeszukiwanie katalogów, wątki ...

Odpowiedz Nowy wątek
2011-10-17 12:12
0

Witam,
Jeśli mam katalog o nazwie "example" i w nim jeszcze kilka naście podkatalogów i w któryś z nich plik o nazwie "file.txt". Jak napisać w javie algorytm, który przeszuka mi katalog "example" i znajdzie plik "file.txt" ? Jakaś pętla for :d ? Poda mi ktoś bibliotekę do tego ? dziki za wszelkie wskazówki :)

Pozostało 580 znaków

2011-10-17 12:34
0

wiesz co to jest np rekurencja?

no, to do dzieła.. - Kerai 2011-10-17 12:50

Pozostało 580 znaków

2011-10-17 12:51
0

tu masz metodę do wyszukiwania rekurencyjnego. Wywyłaj ją z argumentem new File("example")


private void przeszukaj(File dir) {
        for (File file : dir.listFiles()) {
            if (file.isDirectory()) {
                przeszukaj(file);
            } else {
                // tu sobie sprawdz czy to poszukiwany plik
            }
        }
    }
edytowany 3x, ostatnio: madierfakier, 2011-10-17 12:53

Pozostało 580 znaków

2011-10-17 13:18
0

To coś takiego ma być:


    public class Prze {

private void przeszukaj(File dir) {
        for (File file : dir.listFiles()) {
            if (file.isDirectory()) {
                przeszukaj(file);
            } else {
                // tu sobie sprawdz czy to poszukiwany plik
            }
        }
    }

       public static void main(String[] args) { 

         Prze o = new Prze("C:\\");
         o.Przeszukaj("C:\\");

     }
}
edytowany 2x, ostatnio: poniatowski, 2011-10-17 13:23

Pozostało 580 znaków

2011-10-17 13:24
0

Odpal może sobie IDE to zobaczysz, że nawet się nie skompiluje...

edytowany 1x, ostatnio: madierfakier, 2011-10-17 13:25
nie wiem jak ma być przekazany ten argument File dir :(?? - poniatowski 2011-10-17 13:26
o.Przeszukaj(new File("C:\")); - poniatowski 2011-10-17 13:27

Pozostało 580 znaków

2011-10-17 13:28
0

    public class Prze {

private void przeszukaj(File dir) {
        for (File file : dir.listFiles()) {
            if (file.isDirectory()) {
                przeszukaj(file);
            } else {
                // tu sobie sprawdz czy to poszukiwany plik
            }
        }
    }

       public static void main(String[] args) { 

         Prze o = new Prze();
         o.przeszukaj("C:\\");

     }
}

nazwy metod z małej,
odwołujesz się do konstruktora, którego nie ma

edytowany 1x, ostatnio: madierfakier, 2011-10-17 13:29
Pokaż pozostałe 5 komentarzy
warunek ma być taki: if(file.getName() == "dupa.txt"){ System.out.println(file.getName()); } - poniatowski 2011-10-17 13:41
zamiast warunku wstaw sobie dwie linijki: System.out.println("dir: "+dir.getName()); i System.out.println("file: +"file.getName()); i pomyśl dlaczego nie działa. - madierfakier 2011-10-17 13:47
dir to nazwy katalogów, file nazyw plików - poniatowski 2011-10-17 13:52
jakaś podpowiedz ? :) - poniatowski 2011-10-17 13:59
jeszcze jedna uwaga: file.getName() == "dupa.txt" to jest źle. Używaj zamiast tego file.getName().equals("dupa.txt") - madierfakier 2011-10-17 13:59

Pozostało 580 znaków

2011-10-17 14:07
sdfwe
1

mogę ci to napisać za 40zł: [email protected]

Pozostało 580 znaków

2011-10-17 14:14
0

@poniatowski: zacznij uzywac Google, bo szybko przestana Cie tu lubic :>

ok, ok, już sobie poradziłem :p śpieszyło mi sie, trochę spanikowałem :D ale działa, dzięki - poniatowski 2011-10-17 14:19

Pozostało 580 znaków

2011-10-17 14:21
0

@madierfakier dziękuję za pomoc :) przepraszam, że Cię tak wymęczyłem banalnymi pytaniami :) już śmiga :)

Pozostało 580 znaków

2011-10-17 15:53
0

private void przeszukaj(File dir) jak mogę zastąpić (File dir) na np String? Da radę bo to mi wszystko psuje. I gdzieś póxniej te File dir umieścić?

edytowany 1x, ostatnio: poniatowski, 2011-10-17 15:56

Pozostało 580 znaków

2011-10-17 15:55
0

Z tym to już nie pomogę - chcesz być programistą - takie rzeczy musisz sam wykombinować, bo nie wymagają żadnej wiedzy tajemnej ani żadnych sztuczek.

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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