Rekursion Problem

  • VB.NET

Es gibt 6 Antworten in diesem Thema. Der letzte Beitrag () ist von jvbsl.

    Rekursion Problem

    Hallo,
    Ich möchte alle Dateien aus dem Ordner MyDocuments ( Eigene Dateien ) per Rekursion rausholen.

    Hier mein Code:

    VB.NET-Quellcode

    1. Public Class Form1
    2. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    3. ListBox1.Items.Add(Rekursion(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)))
    4. End Sub
    5. Private Function Rekursion(ByVal Ordnerpfad As String) As List(Of String)
    6. Dim Dateien As New List(Of String)
    7. Dateien.AddRange(IO.Directory.GetDirectories(Ordnerpfad))
    8. Return Dateien
    9. End Function
    10. End Class


    In der ListBox steht immer (Auflistung) & nie die Dateien.

    Kann mir jemand sagen was ich falsch mache?
    Ja , wenn man dann aber einen Zugriffsfehler hat , wird das ganze beendet.
    Deswegen möchte ich es rekursiv machen.


    Hier mein Code:

    VB.NET-Quellcode

    1. Imports System.IO
    2. Public Class Form1
    3. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    4. ListBox1.Items.AddRange(Rekursiv(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)))
    5. End Sub
    6. Private Function Rekursiv(ByVal Ordnerpfad As String) As String()
    7. Dim Ordner As String() = Directory.GetDirectories(Ordnerpfad)
    8. Dim Dateien As String() = Directory.GetFiles(Ordnerpfad)
    9. Dim Unterordner As New List(Of String)
    10. For Each SubOrdner As String In Ordner
    11. Unterordner.Add(SubOrdner)
    12. Next
    13. Rekursiv(Ordnerpfad)
    14. Return Dateien
    15. End Function
    16. End Class


    Kann mir jemand sagen warum die Rekursion nicht funktioniert?

    Mfg Kevin.
    also so hab ich das mal aus dem Kopf geschrieben:

    VB.NET-Quellcode

    1. Function GetFiles(Directory As String) As List(Of String)
    2. Dim tmp As New List(Of String)
    3. For Each dir As String In IO.Directory.GetDirectories(Directory)
    4. tmp.AddRange(GetFiles(dir))
    5. Next
    6. tmp.AddRange(IO.File.GetFiles(Directory))
    7. Return tmp
    8. End Function

    einfach mal probieren^^
    Ich wollte auch mal ne total überflüssige Signatur:
    ---Leer---
    also bei mir gehts, was sind das denn für dateien?
    schreib hier bitte mal die Ausgabe von Tree in der cmd rein und schreib dann, was nicht angezeigt wird...
    Ich wollte auch mal ne total überflüssige Signatur:
    ---Leer---