Lister une arborescence pour la supprimer sur un FTP

nicoine Messages postés 51 Date d'inscription vendredi 23 juillet 2004 Statut Membre Dernière intervention 23 février 2012 - 27 août 2008 à 16:44
nicoine Messages postés 51 Date d'inscription vendredi 23 juillet 2004 Statut Membre Dernière intervention 23 février 2012 - 2 sept. 2008 à 14:22
Je recherche une méthode me permettant de suprimer une arborescence de répertoire sur un site FTP afin de tout supprimer.

La méthode FtpRemoveDirectory ne fonctionne pas si le dossier est plein il faut donc commencer par supprimer le contenu,
pour cela j'utilise les méthodes FtpFindFirstFile, InternetFindNextFile qui listent bien le répertoire racine, mais je n'arrive pas à lister les sous répertoires. Si quelqu'un à une idée. Ci-dessous une partie de mon code::

Private Sub ListerSupprimer(HConnect As Long, Dossier As String)
  
    Dim a
    Dim fData As WIN32_FIND_DATA
    Dim fConn As Long
    Dim fResult As Boolean
    Dim Nb As Integer
    Dim TabDossier() As String
    Dim i As Integer

    a = FtpSetCurrentDirectory(HConnect, Dossier)
       
    fConn = FtpFindFirstFile(HConnect, "*.*", fData, 0, 0)
   
    If fConn Then
       
        fResult = True
       
        Do While fResult
           
            Nb = InStr(fData.cFileName, ".")

            If Nb <> 0 Then
                'si c'est un fichier on supprime
                a = FtpDeleteFile(HConnect, fData.cFileName)
            Else
                'si c'est un dossier on liste pour supprimer d'abord le contenu
                Call ListerSupprimer(HConnect, fData.cFileName)
                a = FtpRemoveDirectory(HConnect, fData.cFileName)
            End If

            fResult = InternetFindNextFile(fConn, fData)
        Loop
       
    End If
           
End Sub

Nico

2 réponses

Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 75
31 août 2008 à 04:53
la doc est claire :
After calling
FtpFindFirstFile and until calling
InternetCloseHandle, the application cannot call
FtpFindFirstFile again on the given FTP session handle.

http://msdn.microsoft.com/en-us/library/aa384146(VS.85).aspx

exit donc, la recursion... a mémoriser l'aborescence, et la redescendre pour les sous dossiers.

Renfield
Admin CodeS-SourceS- MVP Visual Basic
0
nicoine Messages postés 51 Date d'inscription vendredi 23 juillet 2004 Statut Membre Dernière intervention 23 février 2012
2 sept. 2008 à 14:22
Ca veut dire qu'il faut ce déconnecter du serveur FTP puis se reconnecter à chaque fois?

Nico
0
Rejoignez-nous