easy70

Fehlerbehandlung beim Einlesen von Verzeichnisbäumen und Dateien

Folgendes Problem: ich möchte ganze Verzeichnisbäume einlesen, die Verzeichnisse auslassen, die beim
Einlesen Fehler verursachen (z.Bsp. wegen Zugriffsberechtigung), und dabei bestimmte Dateien (zur weiteren
Bearbeitung) in einer ListBox anzeigen.
Bei meiner Methode (s.u.) springt mir das Programm aber beim ersten Fehler aus der (Einlese-)Schleife und
überspringt die restlichen Verzeichnisse. Habe mich stundenlang vergoogelt, aber leider keine passende
Lösung gefunden. Hat hier vielleicht jemand eine rettende Idee?


Code:
  Dim TempStr As String'..................' aus Verzeichnis eingelesene Datei  
  Dim Counter As Integer = 0..................' allg. Zähler  
  Dim FileCounter As Integer = 0..................' Zähler für gefundene Dateien  
  Dim MaxFileAmount As Integer = 40                                .........' Max.Anzahl der zu vergl. Dateien  
  Dim CompareFile() As String = {"File1.txt", "File2.txt" (...) }  .........' Array mit den zu findenden Dateien  
  Dim SearchDir As String = "c:\"                                  .........' zu durchsuchendes Verzeichnis  
				
   Try
     For Each File As String In Directory.GetFiles(SearchDir, "*.*", SearchOption.AllDirectories)  
       TempStr = My.Computer.FileSystem.GetName(File)
       For Me.Counter = 1 To MaxFileAmount                         .........' Schleife für alle zu vergl. Dateien  
         If TempStr = CompareFile(Counter) Then                    .........' eingelesene Datei mit Array() vergl.  
           ListBox1.Items.Add(File)                                .........' passende Dateien in ListBox1 anzeigen  
           FileCounter = FileCounter + 1                           .........' Anzahl der passenden Dateien +1  
         End If
       Next
     Next
            
   Catch ex As Exception                                           .........' Falls Verzeichnis nicht lesbar....  
       ListBox2.Items.Add(ex.Message)                              .........' Fehlermeldungen in ListBox2 anzeigen  
   End Try
   infomsg = MessageBox.Show("Ready")                              .........' Programmlauf beendet  


[Edit Biber]Codeformatierung. [/Edit]
Auf Facebook teilen
Auf X (Twitter) teilen
Auf Reddit teilen
Auf Linkedin teilen

Content-ID: 192118

Url: https://administrator.de/forum/fehlerbehandlung-beim-einlesen-von-verzeichnisbaeumen-und-dateien-192118.html

Ausgedruckt am: 17.05.2025 um 11:05 Uhr

dog
dog 03.10.2012 um 00:45:09 Uhr
Goto Top
Bei meiner Methode (s.u.) springt mir das Programm aber beim ersten Fehler aus der (Einlese-)Schleife und
überspringt die restlichen Verzeichnisse.

Ja, weil dein Try/Catch um deine For-Schleife drum herum ist!

Du musst das Try schon in die For-Schleife packen, wenn du die Fehler ignorieren willst.