[R] Liste des fichiers sur FTP

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Phoenix
Niveau 1
Niveau 1
Messages : 6
Enregistré le : lun. 30 nov. 2009 22:12
Status : Hors ligne

[R] Liste des fichiers sur FTP

#1

Message par Phoenix »

Bonjour,
Voila, j'ai un souci avec un script basique.
Je souhaite recuperer la liste des fichiers présents sur le HDD de ma Freebox. Je tente donc d'utiliser la fonction "_FTP_ListToArray".
Seulement, vous vous en doutez, ca ne se passe pas comme je le souhaites. J'ai volontairement réduit le code pour le déboguage.

Code : Tout sélectionner

#include<file.au3>
#Include <FTPEx.au3>
#Include <Array.au3>

DllOpen("wininet.dll")
$Open = _FTP_Open('Freebox')

$Conn = _FTP_Connect($Open, 'hd1.freebox.fr', 'freebox', '') ;évidement mot de passe éffacé, même si ca n'est pas un ftp public......
consolewrite("Dossier courant : " & _FTP_DirGetCurrent($Conn) & @crlf)


_FTP_DirSetCurrent($conn,"/Disque dur/Enregistrements/")
consolewrite("Dossier courant : " & _FTP_DirGetCurrent($Conn) & @crlf)

$test=_FTP_ListToArray($conn,0)
_ArrayDisplay($test)
$Ftpc = _FTP_Close($Open)
Que ce soit avant ou après le "_FTP_DirSetCurrent" il me retourne "0" comme dossier courant.
Je sèche sur ce coup là. Alors je compte faire marcher vos neurones à ma place.
Merci donc de m'aiguiller (à défaut de faire mon script).


Notez que je n'ai pas eu de soucis majeurs pour la fonction d'envoi de fichier, avec le "_FtpPutFile". Cela se passe très bien.
Modifié en dernier par Phoenix le mer. 02 déc. 2009 18:57, modifié 2 fois.
Habibsbib
Niveau 7
Niveau 7
Messages : 393
Enregistré le : dim. 30 août 2009 13:49
Localisation : Euh...Verticale, entre le siège et l'écran...
Status : Hors ligne

Re: [..] Liste des fichiers sur FTP

#2

Message par Habibsbib »

Avant tout, utilise ta borne de code :wink:

Ensuite :

http://www.free.fr/assistance/295-freeb ... ation.html

...ce qui permet de donc de transferer tes fichiers vers ton ordinateur en deux trois clics !

Ensuite, si tu veux vraiment le faire avec AutoIt, je dirais d'abord qu'une FreeBox ne stocke pas les données comme ton ordinateur, je ne pense pas qu'il y ai le même système(si ?) comme NTFS, FAT, etc... Le mieux pour toi, je pense, serait de dévisser le disque de ta Free (ca prend deux secondes, et ça n'abîme rien), puis de rebrancher le disque en Slave sur ton PC.Dans ce cas, il y aura peut-être deux trois configs à consulter, et çe sera la bonne ! Bonne chance :wink:

PS: un bon exploiteur de disques possible :
► Afficher le texte
Avatar du membre
Iste
Niveau 11
Niveau 11
Messages : 1870
Enregistré le : jeu. 04 déc. 2008 14:21
Localisation : 76
Status : Hors ligne

Re: [..] Liste des fichiers sur FTP

#3

Message par Iste »

+1 pour les balises de code

Sinon toutes les box font server FTP, et c'est bien plus pratique comme ca !

Pour obtenir la liste des fichier, utilisez la fonction _FTP_FileFindFirst() dans une boulce
Signez ici
Phoenix
Niveau 1
Niveau 1
Messages : 6
Enregistré le : lun. 30 nov. 2009 22:12
Status : Hors ligne

Re: [..] Liste des fichiers sur FTP

#4

Message par Phoenix »

Bonjour et déja, merci d'avoir répondu.
Tout d'abord, concernant la balise de code c'est corrigé.
Ensuite, les transferts avec ma freebox en ftp via un logiciel dédié (ftp expert pour ne pas le cité) fonctionnent déja très bien mais je souhaites quelque chose de plus automatisé et donc de plus rapide.
Je rappelle également que la fonction "FtpPutFile" fonctionne bien, j'arrive déja à transferer mes fichiers.
A présent je voudrais simplement voir quels sont les fichiers déja présents sur le ftp distant (ici la box en l'occurence) dans le but de ne pas les transferer à nouveau. J'aurais peut-être du préciser que j'avais également effectué des tests avec le même code sur mon serveur ftp de free (ftpperso.free.fr) et que les resultats sont les mêmes. Je ne parviens pas à obtenir la liste des fichiers présents sur le serveur FTP, quel qu'il soit.
Je veux bien essayer (je vais essayer) la fonction "_FTP_FileFindFirst() " mais j'avais esperer que quelqu'un saurait me dire pourquoi la fonction "_FTP_DirGetCurrent($Conn)" refuse de retourner un tableau.
Encore une fois merci d'avoir pris le temps de me lire.
Avatar du membre
Iste
Niveau 11
Niveau 11
Messages : 1870
Enregistré le : jeu. 04 déc. 2008 14:21
Localisation : 76
Status : Hors ligne

Re: [..] Liste des fichiers sur FTP

#5

Message par Iste »

aucune idée comme ca, essaye avec la derniere version de l'udf
http://www.autoitscript.com/forum/index ... ntry676901
Signez ici
Phoenix
Niveau 1
Niveau 1
Messages : 6
Enregistré le : lun. 30 nov. 2009 22:12
Status : Hors ligne

Re: [..] Liste des fichiers sur FTP

#6

Message par Phoenix »

Malheureusement je tourne en rond.
J'ai effectivement testé plusieurs versions de FTP.au3. La plupart ne retourne qu'un 0. J'en ai trouvé une qui me renvoit bien un tableau mais les textes ne sont que des carrés, problème de police ...
D'ailleurs dans ta version proposée, Iste, la fonction de liste de fichier n'existe même pas. Est-ce un signe comme quoi ca ne serait pas encore completement fonctionnel ?
Et la fonction findfilefirst, plante simplement l'executable.
Je vais continuer mes recherches, pour moi ca ne peut que fonctionner.
Merci de vos suggestions.
Avatar du membre
Iste
Niveau 11
Niveau 11
Messages : 1870
Enregistré le : jeu. 04 déc. 2008 14:21
Localisation : 76
Status : Hors ligne

Re: [..] Liste des fichiers sur FTP

#7

Message par Iste »

Ce code fonction parfaitement chez moi :

Code : Tout sélectionner

#Include <FTP.au3>

const $Host = 'ftp.test.fr'
const $Login = ''
const $Password = ''

local $hFtp, $hSession, $hFile, $tBuffer, $nSize, $nBytes

_FTP_Startup()

$hFtp = _FTP_Open('MyFtp')
$hSession = _FTP_Connect($hFtp, $Host, $Login, $Password)

;###PART1###
_FTP_SetCurrentDir($hSession,'www/memo')
MsgBox('','',_FTP_GetCurrentDir($hSession))
;###PART1###

;###PART2###
$tFind = DllStructCreate($tagWIN32_FIND_DATA)
$hFind = _FTP_FileFindFirst($hSession, '', $tFind)
while not @error
    ConsoleWrite(DllStructGetData($tFind, 'FileName') & @CR)
    _FTP_FileFindNext($hFind, $tFind)
wend
;###PART2###

_FTP_Disconnect($hSession)
_FTP_Close($hFtp)

_FTP_Shutdown()
Signez ici
Phoenix
Niveau 1
Niveau 1
Messages : 6
Enregistré le : lun. 30 nov. 2009 22:12
Status : Hors ligne

Re: [..] Liste des fichiers sur FTP

#8

Message par Phoenix »

Et bien voila !!!!
Je savais qu'il ne me manquait pas grand chose. Non je plaisante. J'etais à l'ouest.
Bon, J'ai fini par reinstaller autoit completement, puis importer les nouvelles versions suggérées et enfin, ton code fonctionne parfaitement.
Entre les "_FTP_Startup()" et "_FTP_Shutdown()" dont je n'avais pas eu besoin pour faire tourner mes envois de fichiers, et le "DllStructCreate" que je n'aurais pas trouvé tout seul, vraiment Iste tu me comble.

Je vais me faire ma propre fonction _FTP_List_Files et tout sera fini.


Merci merci et merci
Bye
Avatar du membre
Iste
Niveau 11
Niveau 11
Messages : 1870
Enregistré le : jeu. 04 déc. 2008 14:21
Localisation : 76
Status : Hors ligne

Re: [R] Liste des fichiers sur FTP

#9

Message par Iste »

Et bien tant mieux, mais honnêtement, le plus gros de mon boulot, ca a été de taper "FTP.au3" dans le moteur de recherche du fofo anglais. Des exemple que j'ai grandement recopié s'y trouvaient !
Signez ici
Phoenix
Niveau 1
Niveau 1
Messages : 6
Enregistré le : lun. 30 nov. 2009 22:12
Status : Hors ligne

Re: [R] Liste des fichiers sur FTP

#10

Message par Phoenix »

Moi j'avais vu plus large, GOOGLE, mais sans succès évidement.
bien vu disait l'aveugle.
Merci encore.
Répondre