Bonjour,
je rencontre un souci avec ce bout de code :
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
Je vois bien que des exceptions ne sont pas gérées, si par exemple le localpath ou tout simplement la baseURI sont en panne, l'appli plante.
Vous me direz y a les try/catch pour cela.
Oui mais je n'arrive pas a comprendre comment gérer toutes les exceptions de ce bout de code de manière simple.
Je voudrais que
- si apres 20 secondes, la connexion au ftp n'est pas obtenue, avoir un messagebox.show du genre
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
If MessageBox.Show(Messageaff, infoaff, MessageBoxButtons.RetryCancel, MessageBoxIcon.Warning) = DialogResult.Cancel Then
            "je passe a l'instruction suivante"
        Else
            "je retente la connexion"
        End If
- si localpath n'est pas trouvé alors le répertoire devient par défaut "mes documents"

Je m'emmèle les pinceaux avec mes try/catch et rien ne fonctionne comme prévu
pourrais je avoir une petite aide pour les placer correctement siouplait ?
Merci bien