Bonjour,
J'ai la sub suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
Private Sub download()
        Dim user As String = "monlogin"
        Dim password As String = "monpassword"
        Dim wc As New WebClient()
        wc.Credentials = New NetworkCredential(user, password)
        Dim baseUri = "ftp://ftp.cluster006.ovh.net/www/jdownloads/Patient/new_treatment/" 'URI et chemin ou je veux aller dans le ftp
        Dim newDirectory As String = "../done_treatment/"
        Dim fileNames = GetDirectoryListing(baseUri, wc.Credentials)
        Dim localpath As String = "\\nas\Calculateur\DATA\encours\" 'chemin ou je veux dl les fichiers
        For Each filename In fileNames
            Dim newPath As String = newDirectory + "/" + filename
            If Not filename.EndsWith(".xls", StringComparison.CurrentCultureIgnoreCase) Then 'ne tient pas compte de la casse
                Continue For
            End If
            Dim localFileName = System.IO.Path.Combine(localpath, filename)
            Dim uri = baseUri + "/" + filename
            wc.DownloadFile(uri, localFileName)
            MoveFile(uri, newPath, wc.Credentials) ' transfere le fichier dans done_treatment apres avoir downloade
        Next
        System.Threading.Thread.Sleep(1000)
        Labelprogress.Visible = False
        OvalShapeencours.Visible = False
        Labeldone.Visible = True
        OvalShapedone.Visible = True
        Me.Enabled = True
    End Sub
Comme je reprends un peu la prog de ce soft, je teste un peu les sub et celle la ne me plait pas car :
- Si pour une raison ou une autre, le ftp ou le localpath ou le newdirectory sont morts, l'appli plantera faute de gestion d'exceptions.
J'ai pensé a des try/catch comme cela :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
For Each filename In fileNames
Try
 Dim newPath As String = newDirectory + "/" + filename
            If Not filename.EndsWith(".xls", StringComparison.CurrentCultureIgnoreCase) Then 'ne tient pas compte de la casse
                Continue For
            End If
            Dim localFileName = System.IO.Path.Combine(localpath, filename)
            Dim uri = baseUri + "/" + filename
            wc.DownloadFile(uri, localFileName)
            MoveFile(uri, newPath, wc.Credentials) ' transfere le fichier dans done_treatment apres avoir downloade
Catch ex as ......... (gestion de l exception si timeout du ftp)
Catch ex as ......... (gestion de l exception si le localpath plante)
Catch ex as ......... (gestion de l exception si le newdirectory plante)
End try
 Next
        System.Threading.Thread.Sleep(1000)
        Labelprogress.Visible = False
        OvalShapeencours.Visible = False
        Labeldone.Visible = True
        OvalShapedone.Visible = True
        Me.Enabled = True
    End Sub
[/CODE]

Je ne parviens toutefois pas a trouver comment syntaxer les catch (notament pour le ftpwebresponse) bien qu'ayant cherche sur msdn, google et pas mal d'autres sources.

Pourrais je savoir :
si ma structure est correcte et éventuellement avoir une petite aide pour mon catch ftpwebresponse ?

merci bien