Pour faire avancer le Schmilblick, il faut déjà quelque chose qui liste l'architecture des dossiers/fichiers du FTP.
En partant d'une fonction créée par Yashied du forum Anglais, je suis arrivé à bricoler la fonction pour qu'elle retourne la liste des fichiers/dossiers de manière récursive.
Selon le débit, le nombre de fichiers/dossiers, etc ... cette fonction peut être assez longue, mais si vous testez le code ci-dessous, vous verrez qu'elle fonctionne (a peut prêt

).
► Afficher le texte
Code : Tout sélectionner
#include <FTPEx.au3>
#include <Array.au3>
Global $sStrDir
_FTP_RecList('/pub/phoenix', 'ftp.mozilla.org')
$sStrDir = StringTrimRight($sStrDir, 1)
$aRes = StringSplit($sStrDir, "|")
_ArrayDisplay($aRes)
; Code original de Yashied
; http://www.autoitscript.com/forum/topic/114382-recursive-ftp-search/page__view__findpost__p__799714
Func _FTP_RecList($sRemotePath, $sHost, $sLogin = '', $sPassword = '', $iPassive = 1, $iPort = 0)
Local $hFtp, $hSession, $aFind, $hFind, $Path, $Result = 1
$hFtp = _FTP_Open('MyFtp')
$hSession = _FTP_Connect($hFtp, $sHost, $sLogin, $sPassword, $iPassive, $iPort)
$aFind = _FTP_FindFileFirst($hSession, $sRemotePath, $hFind)
While Not @error
If BitAND($aFind[1], $FILE_ATTRIBUTE_DIRECTORY) Then
If Not _FTP_RecList($sRemotePath & '/' & $aFind[10], $sHost, $sLogin, $sPassword, $iPassive, $iPort) Then
Return 0
EndIf
Else
$sStrDir &= $sRemotePath & '/' & $aFind[10] & "|"
ConsoleWrite($sRemotePath & '/' & $aFind[10] & @CR)
EndIf
$aFind = _FTP_FindFileNext($hFind)
WEnd
_FTP_FindFileClose($hFind)
_FTP_Close($hFtp)
Return $Result
EndFunc ;==>_FTP_RecList
Une autre solution serait d'utiliser Wget (probablement plus rapide) pour générer un fichier listing de l'architecture des fichiers/dossiers du FTP qu'il sera facile d'exploiter dans un deuxième temps.
Si j'ai le temps, j'éditerais ce message pour donner la solution avec Wget.
Edit : Pas réussit à trouver les bonnes options. D'ailleurs, je ne suis même pas sur que cela soit possible avec Wget. Sinon, il faudrait trouver un outil en ligne de commande qui permettrait de lister dossiers/fichiers d'un FTP directement dans un fichier log, puis d'exploiter ce dernier afin de faire le traitement désiré.