Bonjour,
J'ai la sub suivante :
Comme je reprends un peu la prog de ce soft, je teste un peu les sub et celle la ne me plait pas car :
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
- 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]
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
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![]()
Partager