[Code Source] Partage de fichiers via MySQL en FTP

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.

Voici le 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

Voici le 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

Voici le 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

Voici le 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

Voici le 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

 

1 Trackback / Pingback

  1. [Code Source] Ajouter un menu (sous menu) dynamiquement (ToolStripMenuItem) à partir d’une base de donnée MySQL – R1C Projet

Poster un Commentaire

Votre adresse de messagerie ne sera pas publiée.


*