Alle Datein auflisten wofür ich Rechte habe

  • VB.NET
  • .NET (FX) 3.0–3.5

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von RodFromGermany.

    Alle Datein auflisten wofür ich Rechte habe

    Hallo Zusammen,
    ich will alle Datein von einem Bestimmten Pfad in eine Listbox schreiben.
    Doch bei manchen Ordnern habe ich keine Rechte und dann bricht die Suche ab.

    VB.NET-Quellcode

    1. Private Sub Rekursiv(ByVal oDir As IO.DirectoryInfo)
    2. Dim oFile As IO.FileInfo
    3. Try
    4. For Each oFile In oDir.GetFiles("*.pdf", IO.SearchOption.AllDirectories)
    5. With oFile
    6. ListBox1.Items.Add(.DirectoryName & "\" & .Name)
    7. 'ListBox2.Items.Add(.Name)
    8. End With
    9. Next
    10. Catch ex As Exception
    11. Select Case ex.GetType.ToString
    12. Case "System.UnauthorizedAccessException"
    13. MsgBox("Keine Rechte")
    14. Case Else
    15. MsgBox("Anderer Fehler")
    16. End Select
    17. End Try
    18. End Sub


    Vielen Dank schon einmal.

    GrußJosh
    @Fr33c91 Und die Exceptions selbst abfragen, nicht deren String-Repräsentation:

    VB.NET-Quellcode

    1. Try
    2. ' do any
    3. Catch ex As UnauthorizedAccessException
    4. MessageBox.Show("Keine Rechte")
    5. 'Catch ex As Exception
    6. ' MessageBox.Show("Anderer Fehler")
    7. End Try
    Sonstige Exceptions hier abzufangen bringt nix!
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Danke schon einmal, jetzt muss nur die FOR-Schleife weiter laufen.
    Die soll wenn der Fehler kommt den Ordner/Datei überspringen und an den nächsten Ordner gehen.

    Habe es mit einem Continue for versucht, aber das Try muss in die FOR-Schleife, aber so weit geht es nicht mal.
    In der For Each zeile habe ich schon keine rechte...

    VB.NET-Quellcode

    1. Try
    2. For Each oFile In oDir.GetFiles("*.pdf", IO.SearchOption.AllDirectories)
    3. Catch ex As UnauthorizedAccessException
    4. Continue For
    5. End Try
    6. With oFile
    7. ListBox1.Items.Add(.DirectoryName & "\" & .Name)
    8. 'ListBox2.Items.Add(.Name)
    9. End With
    10. Next
    @Fr33c91 Deine Herangehensweise ist falsch, Du versuchst, alle Dateien in allen Verzeichnissen mit einem Befehl aufzulisten.
    Du musst zunächst in einer Schleife alle Verzeichnisse auflisten,
    danach musst Du alle verfügbaren Verzeichnisse durchflöhen.
    Du solltest schon mal in dem Link verstehen, was da alles nacheinander abläuft.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!