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

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 :)

0

wiesz co to jest np rekurencja?

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
            }
        }
    }
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:\\");
       
     }
}

0

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

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

1

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

0

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

0

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

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ć?

0

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

0

JDK7 ma przyjemniejsze rozwiązanie - FileVisitor (pisane z palca):

Path katalog = Paths.get("example");
Path szukany = Paths.get("file.txt");
Files.walkFileTree(path, new SimpleFileVisitor<Path>() {
    @Override
    public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) {
        if (file.endsWith(szukany)) {
            // .. tu coś zrób z plikiem
            return FileVisitResult.TERMINATE; // znaleziony, kończymy
        } else {
            return FileVisitResult.CONTINUE; // szukamy dalej
        }
    }
}
0
Prze q = new Prze(file.getPath(), p);

Chcesz znaleźć p, a nie "dupa.txt":

if(file.getName().equals("dupa.txt")){

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