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 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72
| Sub dl()
Dim monUriFichier As New System.Uri(ftp)
Dim monUriDestinationFichier As New System.Uri(lac)
If Not (monUriFichier.Scheme = Uri.UriSchemeFtp) Then
MessageBox.Show("L'Uri du fichier sur le serveur FTP n'est pas valide",
"Une erreur est survenue", MessageBoxButtons.OK, MessageBoxIcon.Warning)
Exit Sub
End If
If Not (monUriDestinationFichier.Scheme = Uri.UriSchemeFile) Then
MessageBox.Show("Le chemin de destination n'est pas valide !",
"Une erreur est survenue",
MessageBoxButtons.OK, MessageBoxIcon.Warning)
Exit Sub
End If
Dim monResponseStream As Stream = Nothing
Dim monFileStream As FileStream = Nothing
Dim monReader As StreamReader = Nothing
Try
Dim downloadRequest As FtpWebRequest = CType(WebRequest.Create(monUriFichier), FtpWebRequest)
If Not user.Length = 0 Then
Dim monCompteFtp As New NetworkCredential(user, pass, "21")
downloadRequest.Credentials = monCompteFtp
End If
Dim downloadResponse As FtpWebResponse = CType(downloadRequest.GetResponse(), FtpWebResponse)
monResponseStream = downloadResponse.GetResponseStream()
Dim nomFichier As String = monUriDestinationFichier.LocalPath.ToString
monFileStream = File.Create(nomFichier)
Dim monBuffer(1024) As Byte
Dim octetsLus As Integer
While True
octetsLus = monResponseStream.Read(monBuffer, 0, monBuffer.Length)
If octetsLus = 0 Then
Exit While
End If
monFileStream.Write(monBuffer, 0, octetsLus)
End While
MessageBox.Show("Téléchargement effectué.")
Catch ex As UriFormatException
MessageBox.Show(ex.Message)
Catch ex As WebException
MessageBox.Show(ex.Message)
Catch ex As IOException
MessageBox.Show(ex.Message)
Finally
If monReader IsNot Nothing Then
monReader.Close()
ElseIf monResponseStream IsNot Nothing Then
monResponseStream.Close()
End If
If monFileStream IsNot Nothing Then
monFileStream.Close()
End If
End Try
End Sub |
Partager