Rekursives Durchlaufen eines Verzeichnisses - AccessDeniedException behandeln

sandreas

Mitglied
Hallo zusammen,

ich würde gerne ein Verzeichnis rekursiv durchlaufen und dabei die auftretenden Exceptions behandeln, ohne den Lauf abzubrechen. Wichtig ist, dass sowohl Verzeichnisse (leere), als auch Dateien aufgelistet werden, und das ganze möglichst mit dem Rückgabetyp Stream<Path>, damit ich bisherigen Code weiter verwenden kann.

Folgenden Ansatz habe ich versucht (hier fehlen Verzeichnisse):

Java:
static class FN<T extends Path> implements Function<T, Stream<T>> {
    @Override
    public Stream<T> apply(T p) {
        if (!Files.isDirectory(p, LinkOption.NOFOLLOW_LINKS)) {
            return Stream.of(p);
        } else {
            try {
                return toStream(Files.newDirectoryStream(p)).flatMap(q -> apply((T) q));
            } catch (IOException ex) {
                return Stream.empty();
            }
        }
    }
}

public static void main(String[] args) throws IOException {
    Path path = Paths.get("some path");
    long count = toStream(Files.newDirectoryStream(path))
            .parallel()
            .flatMap(new FN<>()::apply)
            .count();            

    System.out.println("count: " + count);
}

static <T> Stream<T> toStream(Iterable<T> iterable) {
    return StreamSupport.stream(iterable.spliterator(), false);
}

Files.find oder Files.walk brechen bei einer Exception ab
Code:
Stream<Path> stream = Files.find(start, maxDepth, (path, attr) ->
       String.valueOf(path).endsWith(".js"));

Weiß jemand Rat?
 

Flown

Administrator
Mitarbeiter
Streams sind nicht geeignet für Exception-Handling. Darum werden auch deine Exceptions weitergeworfen und der Stream bricht ab.
Nutze lieber File::walkFileTree und implementiere einen FileVisitor - Streams sind nicht ein Allheilmittel.

Edit: Was willst du überhaupt erreichen?
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Rekursives Programm zum Anzeigen von Primzahlen Java Basics - Anfänger-Themen 3
C Rekursives Backtracking beim Spiel Peg Java Basics - Anfänger-Themen 22
G Rekursives Programmieren --> harmonische Reihe Java Basics - Anfänger-Themen 3
S Rekursives Problem.... Java Basics - Anfänger-Themen 16
S Rekursives Zählen einer Zahl Java Basics - Anfänger-Themen 8
J Rekursives Parsen (ohne Reg Expressions) Java Basics - Anfänger-Themen 8
S Rekursives Umdrehen, Spiegeln. etc. von Strings Java Basics - Anfänger-Themen 3
I Rekursives Löschen in Binärem Suchbaum Java Basics - Anfänger-Themen 2
L rekursives spiel programmieren Java Basics - Anfänger-Themen 4
G Rekursives aufrufen führt zu StackOverflowError Panel durchl Java Basics - Anfänger-Themen 5
M Rekursives suchen im TreeMenu Java Basics - Anfänger-Themen 10
N Rekursives suchen in einer Liste Java Basics - Anfänger-Themen 8
G Primzahlentester als rekursives Programm! Java Basics - Anfänger-Themen 13
H Rekursives einlesen von Lokalen Ordner Java Basics - Anfänger-Themen 4
Bugs Bunny Fehlerhafte Berechnung beim erneuten Durchlaufen der Schleife Java Basics - Anfänger-Themen 5
1 Array rekursiv durchlaufen Java Basics - Anfänger-Themen 8
Cassy3 Binäre Bäume Rekursiv durchlaufen und bestimmte Elemente Zählen Java Basics - Anfänger-Themen 6
K Erste Schritte Wie schnell ist LinkedHashMap im Vergleich zur ArrayList, wenn alle Entries durchlaufen werden? Java Basics - Anfänger-Themen 47
TimoN11 Array -> Schleife wieder von vorne durchlaufen lassen Java Basics - Anfänger-Themen 1
E Timer trotz erwartender Eingabe durchlaufen lassen Java Basics - Anfänger-Themen 11
E Baum pfadweise durchlaufen Java Basics - Anfänger-Themen 11
S Array X-mal durchlaufen und dann N-mal durchlaufen Java Basics - Anfänger-Themen 20
W Eigener Iterator soll mehrdimensionales Array durchlaufen Java Basics - Anfänger-Themen 4
B Klassen Alle Unter-Objekte durchlaufen in der Hauptklasse Java Basics - Anfänger-Themen 10
I Methoden Schleife immer wieder durchlaufen lassen Java Basics - Anfänger-Themen 15
T Objekt-Arrays mit einer Schleife durchlaufen/ausgeben Java Basics - Anfänger-Themen 2
B Durchlaufen von Hashmap und Arraylist Java Basics - Anfänger-Themen 8
B OOP Liste durchlaufen Java Basics - Anfänger-Themen 12
G Mehrere If-else-Sätze der Reihe nach durchlaufen lassen Java Basics - Anfänger-Themen 2
C Laufzeitverhalten beim zeilenweise durchlaufen eines 2 dimensional array Java Basics - Anfänger-Themen 6
W If_Bedingung in statischer Methode beim zweiten Mal nicht durchlaufen Java Basics - Anfänger-Themen 14
L Klassen nacheinander durchlaufen? Java Basics - Anfänger-Themen 5
A do while Schleife wird 2 mal durchlaufen Java Basics - Anfänger-Themen 3
J Baum rekursiv durchlaufen Java Basics - Anfänger-Themen 2
K Stammbaum durchlaufen (Iteration etc) Java Basics - Anfänger-Themen 9
D HashMap Keys durchlaufen Java Basics - Anfänger-Themen 2
R Switch: Nach durchlaufen des Case wieder zum Menü Java Basics - Anfänger-Themen 3
S Methoden Return Anweisung beendet Methode nicht, stattdessen wird diese zweimal durchlaufen Java Basics - Anfänger-Themen 3
A Array wird nicht durchlaufen Java Basics - Anfänger-Themen 10
A Treeset per For-Schleife durchlaufen Java Basics - Anfänger-Themen 2
K Objektbaum durchlaufen Java Basics - Anfänger-Themen 7
S Erfahrungswerte von schnelles durchlaufen von Listen mit 2 Werten Java Basics - Anfänger-Themen 10
A Datentypen Iterator von hinten nach vorne durchlaufen Java Basics - Anfänger-Themen 4
M Zweidimensionales Array durchlaufen Java Basics - Anfänger-Themen 4
C dynamische JTextFields durchlaufen Java Basics - Anfänger-Themen 5
J äußere for schleife wird nur einmal durchlaufen Java Basics - Anfänger-Themen 8
T Datentypen Verschachtelte Map durchlaufen Java Basics - Anfänger-Themen 4
N Map Durchlaufen Java Basics - Anfänger-Themen 20
R Fehler in Rekursion (Unterordner durchlaufen) Java Basics - Anfänger-Themen 2
J Problem Arraylist durchlaufen Java Basics - Anfänger-Themen 7
K methode wird nur einmal korrekt durchlaufen Java Basics - Anfänger-Themen 4
B Array durchlaufen und sortieren Java Basics - Anfänger-Themen 9
N HashMap mit Iterator durchlaufen Java Basics - Anfänger-Themen 11
P Klassen-konstanten durchlaufen Java Basics - Anfänger-Themen 9
M Durchlaufen von Sets Java Basics - Anfänger-Themen 11
H Monat durchlaufen Java Basics - Anfänger-Themen 2
W Textfiles durchlaufen Java Basics - Anfänger-Themen 11
M Durchlaufen eines Verzeichnisbaums Java Basics - Anfänger-Themen 5
G Rekursion mit Return - Baum durchlaufen Java Basics - Anfänger-Themen 4
F Objektnamen mit Schleife durchlaufen. Java Basics - Anfänger-Themen 10
G [Threads]: Mit mehreren Threads 1 ArrayList durchlaufen Java Basics - Anfänger-Themen 19
G HashMap durchlaufen und alle keys mit values ausgeben Java Basics - Anfänger-Themen 4
M Variablen einer Klasse zu durchlaufen möglich? Java Basics - Anfänger-Themen 5
K 2D Array spaltenweise durchlaufen Java Basics - Anfänger-Themen 4
G Baumstruktur rekursiv durchlaufen Java Basics - Anfänger-Themen 2
M Textfile durchlaufen und ersetzen Java Basics - Anfänger-Themen 2
M textboxen mit schleife durchlaufen. Java Basics - Anfänger-Themen 5
G Alle Componente eines JFrame durchlaufen Java Basics - Anfänger-Themen 3
P Schleife wird falsch durchlaufen!? Java Basics - Anfänger-Themen 3
H HashMap durchlaufen Java Basics - Anfänger-Themen 4
M Verzeichnisse rekursiv durchlaufen und dann RegEx Java Basics - Anfänger-Themen 6
J Durchlaufen von Vektoren Java Basics - Anfänger-Themen 14
G Array mit Schleife durchlaufen - guter Stil? Java Basics - Anfänger-Themen 20
K durchlaufen einer methode zählen Java Basics - Anfänger-Themen 15
M for-Schleife und Variablen automatisch durchlaufen Java Basics - Anfänger-Themen 2
W Baum durchlaufen Java Basics - Anfänger-Themen 3
M String mit For Each durchlaufen Java Basics - Anfänger-Themen 4
E liste rekursiv durchlaufen? Java Basics - Anfänger-Themen 3
S NameValuePair durchlaufen Java Basics - Anfänger-Themen 4
D Verzeichnisse rekursiv durchlaufen Java Basics - Anfänger-Themen 3
M HashMap durchlaufen: Was stimmt nicht? Java Basics - Anfänger-Themen 7
M Länge eines Arrays als Variable speichern möglich? Java Basics - Anfänger-Themen 14
P Objekt einer Methode eines anderen Objektes übergeben Java Basics - Anfänger-Themen 5
P Wie kann ich beispielsweise Speicherstände eines Spiels DAUERHAFT in meinem Programm speichern? Java Basics - Anfänger-Themen 3
laxla123 Eigenschaften eines Algorithmus (determiniert vs.. deterministisch) Java Basics - Anfänger-Themen 2
monsterherz Ablauf der Erstellung eines Java Programmes Java Basics - Anfänger-Themen 17
monsterherz Fehler Semikolon fehlt - ich weiss aber nicht wo da noch eines hin sollte... Java Basics - Anfänger-Themen 21
J Farbe des Striches eines TitledBorders ändern Java Basics - Anfänger-Themen 2
pc pc pc pc pc letztes Element eines Arrays n Java Basics - Anfänger-Themen 3
walid Öffnungszeiten eines Geschäftes Java Basics - Anfänger-Themen 3
paulen1 Best Practice "Unchecked Assignment" Warnung beim erstellen eines 2D Arrays of Arraylists Java Basics - Anfänger-Themen 2
T Probleme beim Import eines Git-Repos Java Basics - Anfänger-Themen 2
U Eigenschaft eines JTextfiels per ActionListener ändern... Java Basics - Anfänger-Themen 2
B Synchronisation eines kleinen Museums Java Basics - Anfänger-Themen 47
krgewb Breite und Höhe eines Bildes in base64 auslesen Java Basics - Anfänger-Themen 3
Sachinbhatt Was ist die Notwendigkeit eines Sammlungsframeworks in Java? Java Basics - Anfänger-Themen 2
N Textdatei aus Resourcen-Ordner eines Projekts/ jar-file lesen Java Basics - Anfänger-Themen 4
B Produkt eines double - streams Java Basics - Anfänger-Themen 3
B Attribute eines Objekts einer Klasse durch statische Methode einer 2. Klasse ändern? Java Basics - Anfänger-Themen 32
S Variablen Letzte Zeile eines Strings entfernen Java Basics - Anfänger-Themen 1

Ähnliche Java Themen

Neue Themen


Oben