
Dans le projet, j’utilise un serveur FTP pour créer un espace de partage de documents. Les fonctions ci-dessous permettent de télécharger un document d’un serveur FTP. Une fois le document téléchargé on peut le mettre à jour sur son PC puis transférer la mis à jour sur le serveur FTP.

Avant de télécharger un fichier il est cependant préférable de vérifier si le fichier demandé est bien présent sur le serveur FTP, si non le fichier local sera détruit ! En effet avant de pouvoir télécharger un fichier en FTP sur son PC celui si de doit pas être présent sur le PC…
Ce code vient en complément de la création automatique de menu dans une application présenté ici.
Code pour la déclaration des variables utilisées pour vérifier si un fichier est présent sur un serveur FTP
Public tab_ftp_fichiers() As String
Public nb_ftp_fichiers As Integer
Code pour vérifier si un fichier est présent sur un serveur FTP
Public Sub Liste_fichiers_sur_serveur_ftp(serveur As String)
Try
' Connexion au serveur FTP
Dim ftpReq As FtpWebRequest = WebRequest.Create("ftp://" & serveur & "/")
ftpReq.Method = WebRequestMethods.Ftp.ListDirectory
' Connexion au serveur FTP
ftpReq.Credentials = New NetworkCredential(My.Settings.FTP_identifiant, My.Settings.FTP_password)
Dim ftpResp As FtpWebResponse = ftpReq.GetResponse
' Lecture des résultats
Dim streamReader As New StreamReader(ftpResp.GetResponseStream())
Dim directories As New List(Of String)()
Dim line As String = streamReader.ReadLine()
While Not String.IsNullOrEmpty(line)
directories.Add(line)
line = streamReader.ReadLine()
End While
'ftpResp.Close()
streamReader.Close()
'Mise à jour de la liste des fichiers
nb_ftp_fichiers = 0
ReDim tab_ftp_fichiers(nb_ftp_fichiers)
For i As Integer = 0 To directories.Count - 1
If directories(i).Contains(".") Then
nb_ftp_fichiers += 1
ReDim Preserve tab_ftp_fichiers(nb_ftp_fichiers)
tab_ftp_fichiers(nb_ftp_fichiers) = directories(i).ToString()
End If
Next
Catch ex As Exception
End Try
End Sub
Code pour télécharger un fichier
Public Sub Telecharger_fichier(serveur As String, fich As String)
Try
'Liens du fichier sur votre ordi
Dim fichlocal = appdocuments & fich
Dim b_telechargement As Boolean = False
'Suppression du fichier local pour mise à jour
'Si le fichier est présent sur le serveur FTP
Liste_fichiers_sur_serveur_ftp(serveur)
For i = 1 To nb_ftp_fichiers
If tab_ftp_fichiers(i) = fich Then
If File.Exists(fichlocal) Then
Kill(fichlocal)
End If
'lien du ftp et le dossier de destination
Dim fichftp = "ftp://" & serveur & "/" & fich
' Téléchargement du fichier
My.Computer.Network.DownloadFile(fichftp, fichlocal, My.Settings.FTP_identifiant, My.Settings.FTP_password)
' Message pour nous dire quand ça se termine.
Afficher_message_status("Téléchargement du fichier " & fich & " correctement effectuté !")
b_telechargement = True
End If
Next
If b_telechargement = False Then
Afficher_message_status("Le fichier local (" & fichlocal & ") n'existe pas !")
End If
Catch ex As Exception
'les try permettent de récuperer l'erreur éventuelle
Afficher_message_status("Téléchargement du fichier " & fich & " impossible !")
End Try
End Sub
Code pour transférer un fichier sur un serveur FTP
Public Sub Transfert_fichier(serveur As String, fich As String)
Try
' Liens du fichier sur votre ordi
Dim fichlocal = appdocuments & fich
' Lien du ftp et le dossier de destination
Dim fichftp = "ftp://" & serveur & "/" & fich
' Transfert du fichier
My.Computer.Network.UploadFile(fichlocal, fichftp, My.Settings.FTP_identifiant, My.Settings.FTP_password)
Catch ex As Exception
Afficher_message_status("Transfert du fichier " & fich & " impossible !")
End Try
End Sub
Code pour effacer un fichier sur un serveur FTP
Public Sub Effacer_fichier_sur_serveur_ftp(fich As String)
Try
Dim ftpReq As FtpWebRequest = WebRequest.Create(fich)
ftpReq.Method = WebRequestMethods.Ftp.DeleteFile
ftpReq.Credentials = New NetworkCredential(My.Settings.FTP_identifiant, My.Settings.FTP_password)
Dim ftpResp As FtpWebResponse = ftpReq.GetResponse
Afficher_message_status("Fichier " & fich & " effacé sur le serveur !")
Catch ex As Exception
Afficher_message_status("Effacement du fichier " & fich & " impossible !")
End Try
End Sub
Poster un Commentaire