Salut !
Désolé ! Je t'ai dit une bêtise, j'arrive à télécharger le fichier, mais il est vide ! Voici mon code :
Private Sub BoutonTelecharger_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BoutonTelecharger.Click
If UFI.Text <> "" Then 'Ca c'est la textbox contenant le nom du fichier
If Extension.Text = "" Then
MsgBox("Merci de rentrer l'extension du fichier !", vbOKOnly, "Erreur")
Else
Dim DossierOuMettreLeFichier
Dim ExtensionFilter = "Fichiers" & Extension.Text
Dim ExtensionFilterSystem = "*." & Extension.Text
With ChoisirNomFichier
.InitialDirectory = Environ("USERPROFILE")
End With
ChoisirNomFichier.ShowDialog()
DossierOuMettreLeFichier = Mid(ChoisirNomFichier.FileName, 1, InStrRev(ChoisirNomFichier.FileName, ""))
Debug.Print(DossierOuMettreLeFichier)
Debug.Print(Directory & UFI.Text & "." & Extension.Text)
FtpDownload(New Uri(Directory & UFI.Text & "." & Extension.Text), _
New NetworkCredential(UserName, "motdepasse"), _ 'Mon vrai mot de passe est mieux
New DirectoryInfo(DossierOuMettreLeFichier))
End If
Else
MsgBox("Merci de rentrer le code de téléchargement !", vbCritical, "Erreur")
End If
End Sub
Et je sais que ce code est en lien avec celui ci, je l'ai récupéré sur Internet :
Public Shared Function FtpDownload(ByVal uri As Uri, ByVal credentials As NetworkCredential, ByVal dirInfo As DirectoryInfo) As FileInfo
Dim fi As FileInfo
Dim request As FtpWebRequest = DirectCast(WebRequest.Create(uri), FtpWebRequest)
request.Credentials = credentials
request.UseBinary = True
request.Method = WebRequestMethods.Ftp.DownloadFile
'Utilisé pour envoyer la commande "QUIT" au serveur afin de fermer correctement la connexion
request.KeepAlive = False
' Taille du tableau servant à stocker les morceaux du fichier.
' On épargne ainsi les ressources du serveur en ne chargeant pas la totalité du fichier.
' Cela permet de transférer rapidement des fichiers volumineux.
Dim buffer As Byte() = New Byte(2047) {}
' Variable de mesure de la taille du morceau de fichier lu. Permet d'indiquer que le fichier a été lu et écrit en totalité.
' Recupération de la réponse
Using res As FtpWebResponse = DirectCast(request.GetResponse(), FtpWebResponse)
fi = New FileInfo(String.Concat(dirInfo.FullName, uri.Segments(uri.Segments.Length - 1)))
Using stream As New BinaryReader(res.GetResponseStream())
Using fs As FileStream = File.Create(fi.FullName, buffer.Length, FileOptions.WriteThrough)
' Ecriture du flux dans le fichier block par block
Dim block As Integer
While ((block = stream.Read(buffer, 0, buffer.Length)) > 0)
fs.Write(buffer, 0, block)
End While
End Using
End Using
End Using
Return fi
End Function
Merci de m'aider !