Foutmelding Recycle Bins

Status
Niet open voor verdere reacties.

bonnowagt

Gebruiker
Lid geworden
7 dec 2006
Berichten
445
Hallo,

Ik heb het volgend programmaatje dat een schijf doorzoekt op bepaalde bestanden:
Code:
ComboBox2.Text = "h:\"
        Dim fileNames = My.Computer.FileSystem.GetFiles(ComboBox2.Text, FileIO.SearchOption.SearchAllSubDirectories.)
  For Each fileName As String In fileNames
      If fileName.EndsWith(".mp3") Or fileName.EndsWith(".jpg") Or
                               fileName.EndsWith(".bmp") Or fileName.EndsWith(".png") Or
                              fileName.EndsWith(".jpeg") Or fileName.EndsWith(".tff") Or
                                fileName.EndsWith(".gif") Then
                ListBox1.Items.Add(fileName)
   End If
        Next

Ik krijg de volgende foutmelding:
h:\$recycle.bin\s-1-5-21-23770757443-1328674654-3264621237-1001 IS GEWEIGERD

Trouwens die foutmelding krij ik eveneens bij de andere schijven dus bij c:\ enz

Hoe kan ik deze directory omzeilen indien ik dit met TRY doe dan stopt het zoeken natuurlijk direct en krijg ik geen gegevens in de listbox

Vr.groet
 
Met Try.. Catch kan je dat uiteraard opvangen.
Controleer dan de foutcode en als dat de betreffende fout is kan je met Continue For gewoon doorgaan.

Tip:
Let ook op je inspringpunten want in de code die je toont klopt daar niets van.

Voorbeeldje n.a.v. code in #1:
Code:
ComboBox2.Text = "h:\"
Dim fileNames = My.Computer.FileSystem.GetFiles(ComboBox2.Text, FileIO.SearchOption.SearchAllSubDirectories.)
Dim array() As String = {".mp3", ".jpg", ".bmp", ".png", ".jpeg", ".tff", ".gif"}
For Each fileName As String In fileNames
    For Each element As String In array
        If fileName.EndsWith(element) Then
            ListBox1.Items.Add(fileName)
        End If
    Next element
Next fileName
 
Laatst bewerkt:
Dank je wel,

Ik heb nu onderstaande maar waar plaats ik nu Continue For
Code:
ComboBox2.Text = "h:\"
        Try
            Dim fileNames = My.Computer.FileSystem.GetFiles(ComboBox2.Text, FileIO.SearchOption.SearchAllSubDirectories)
            Dim array() As String = {".mp3", ".jpg", ".bmp", ".png", ".jpeg", ".tff", ".gif"}
            For Each fileName As String In fileNames
                For Each element As String In array
                    If fileName.EndsWith(element) Then
                        ListBox1.Items.Add(fileName)
                    End If
                Next element
            Next fileName
        Catch ex As Exception
        End Try
 
Tussen Catch ex As Exception en End Try
Daar controleer je op de fout en als het de verwachte fout is ga je verder met Continue For
 
Laatst bewerkt:
Code:
ComboBox2.Text = "h:\"
        Try
            Dim fileNames = My.Computer.FileSystem.GetFiles(ComboBox2.Text, FileIO.SearchOption.SearchAllSubDirectories)
            Dim array() As String = {".mp3", ".jpg", ".bmp", ".png", ".jpeg", ".tff", ".gif"}
            For Each fileName As String In fileNames
                For Each element As String In array
                    If fileName.EndsWith(element) Then
                        ListBox1.Items.Add(fileName)
                    End If
                Next element
            Next fileName
        Catch ex As Exception
        continue for
        End Try
Heb ook gegoogeld waar continue for geplaatst moet worden maar men zegt daar ook tussen Catch ex As Exception en End Try
Echter ik krijg de melding dat dit alleen in een For lus geplaatst mag worden. Heb dit ook geprobeerd maar blijf de foutmelding krijgen
 
Try Catch kan wel maar is wat lastigh en kan ik zo niet testen. Probeer dit eens:
Code:
ComboBox2.Text = "h:\"
Dim fileNames = My.Computer.FileSystem.GetFiles(ComboBox2.Text, FileIO.SearchOption.SearchAllSubDirectories)
Dim array() As String = {".mp3", ".jpg", ".bmp", ".png", ".jpeg", ".tff", ".gif"}
 
On Error GoTo Toegang
For Each fileName As String In fileNames
    For Each element As String In array
        If fileName.EndsWith(element) Then
            ListBox1.Items.Add(fileName)
        End If
    Next element
Next fileName

Toegang:
If Err.Number = 52 Then
    Resume Next
Else
    MessageBox.Show(Err.Description, "FOUT")
Endif
 
Kijk dan of die 52 wel goed is en dat niet een ander nummer moet zijn.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan