J'ai essayé mais cela semble ne pas fonctionner à l'intérieur d'un For
et je ne peux donc pas retourner dans la routine pour traiter la suite des répertoires
Jacques
Si je met le Try juste avant le
For Each fichier In Directory.GetFiles(Chemin, Extension1, System.IO.SearchOption.AllDirectories)
je suis obligé de mettre le End Try après le Next de cette ligne For (Si je le met dans la boucle elle est en erreur (Pas de Next)
et lorsque j'insère dans la boucle un Catch le catch dit manquer de End Try le For manquer de Next et le End Try manquer de Try.
Désolé mais je n'ai pas saisi comment mettre en oeuvre la coloration syntaxique
Private Sub Button6_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button6.Click
Dim Nbr As Integer = 0
Dim fichier As String
Dim Chemin2 As String
If RepDone = False Then
MsgBox("Donnez le répertoire à traiter")
Exit Sub
End If
If Extension1 = "" Then
MsgBox("Donnez le type d'exstension à traiter")
Exit Sub
End If
ListBox4.Items.Clear()
ListBox4.Sorted = True
'Stop
If Me.CheckBox1.Checked = True Then 'Si case sous rép cochée -> recherche dans les sous répertoire
Dim SousDos() As String = Directory.GetDirectories(Chemin)
Dim Dossier As String
For Each Dossier In SousDos
MsgBox(Dossier)
If Dossier.Contains("System Volume Information") Then
GoTo Saute
End If
Chemin2 = Dossier
For Each fichier In Directory.GetFiles(Chemin2, Extension1, System.IO.SearchOption.AllDirectories)
If RadioButton4.Checked Then
If fichier.Contains(TextBox3.Text) Then
Me.ListBox4.Items.Add(fichier)
D3(Nbr) = (fichier)
Nbr = Nbr + 1
ReDim Preserve D3(Nbr + 1) ' ne pas oublier le preserve sinon les données sont effacées
End If
Else
Me.ListBox4.Items.Add(fichier)
D3(Nbr) = (fichier)
Nbr = Nbr + 1
ReDim Preserve D3(Nbr + 1) ' ne pas oublier le preserve sinon les données sont effacées
End If
Next
Saute:
Next
Else 'Si case sous rép pas cochée = recherche uniquement dans le répertoire
For Each fichier In Directory.GetFiles(Chemin, Extension1)
If RadioButton4.Checked Then
If fichier.Contains(TextBox3.Text) Then
Me.ListBox4.Items.Add(fichier)
D3(Nbr) = (fichier)
Nbr = Nbr + 1
ReDim Preserve D3(Nbr + 1) ' ne pas oublier le preserve sinon les données sont effacées
End If
Else
Me.ListBox4.Items.Add(fichier)
D3(Nbr) = (fichier)
Nbr = Nbr + 1
ReDim Preserve D3(Nbr + 1) ' ne pas oublier le preserve sinon les données sont effacées
End If
Next
End If
End Sub
Pour gérer les erreurs d'accès, je pense que mettre le Try/Catch en encerclant la boucle
For Each fichier In Directory.GetFiles(Chemin2, Extension1, System.IO.SearchOption.AllDirectories)
Serait plus adapté.
En premier, j'ai envoyé par erreur le code que j'ai modififié pour tenter de résoudre le pb
le code objet de ma demande est dans le msg précédent celui ci
Merci pour tes conseils mais je ne vois pas comment placer les catch et autres dans la boucle sans créer vles problèmes que j'ai indiqués plus haut
Jacques