|
Code d'exemple:
Enumeration
#Zone_Travail
#Nv_Rep
#Sup_Fichier
#Upload
#Download
#Renommer
#Changer_Repertoire
#Repertoire_Superieur
EndEnumeration
#Vrai
= 1 : #Faux
= 0
Structure
Pointeur_Fonctions
Connexion.l
Lister_Repertoire.l
Nom_Fichiers.l
Taille_Fichiers.l
Attribut_Fichiers.l
Creer_Dossier.l
Supprimer_Fichier.l
Upload.l
Download.l
Renommer.l
Repertoire_Actuel.l
Changer_Repertoire.l
Repertoire_Superieur.l
EndStructure
Structure
Data_Fichiers
Nom.s
Taille.l
Attribut.b
;
Voir ReadMe.txt pour la liste des attributs.
EndStructure
P_F.Pointeur_Fonctions
Repertoire.s
Nombre_Fichiers.w
Global
P_F
NewList
Fichiers.Data_Fichiers()
Procedure
Actualiser(hConnect.l)
ClearList(Fichiers())
ClearGadgetItemList(#Zone_Travail)
Nombre_Fichiers
= CallFunctionFast(P_F\Lister_Repertoire,Repertoire,hConnect)
For x = 0 To Nombre_Fichiers-1
AddElement(Fichiers())
Fichiers()\Nom = PeekS(CallFunctionFast(P_F\Nom_Fichiers,x))
Fichiers()\Attribut = CallFunctionFast(P_F\Attribut_Fichiers,x)
If Fichiers()\Attribut = 2
Fichiers()\Taille
= CallFunctionFast(P_F\Taille_Fichiers,x)
EndIf
AddGadgetItem(#Zone_Travail,-1,Fichiers()\Nom + Chr(10) + Str(Fichiers()\Attribut) + Chr(10) + Str(Fichiers()\Taille))
Next x
EndProcedure
If
OpenLibrary(0,"Commandes_FTP.dll")
If OpenWindow(0,0,0,530,480,#PB_Window_ScreenCentered
| #PB_Window_SystemMenu,"FTP")
CreateGadgetList(WindowID())
ListIconGadget(#Zone_Travail,10,10,390,390,"Nom",200,#PB_ListIcon_FullRowSelect
| #PB_ListIcon_HeaderDragDrop)
AddGadgetColumn(#Zone_Travail,1,"Attribut",70)
AddGadgetColumn(#Zone_Travail,2,"Taille",116)
ButtonGadget(#Nv_Rep,410,10,110,30,"Nouveau
Dossier")
ButtonGadget(#Sup_Fichier,410,50,110,30,"Supprimer
un fichier")
ButtonGadget(#Upload,410,90,110,30,"Uploader")
ButtonGadget(#Download,410,130,110,30,"Download")
ButtonGadget(#Renommer,410,170,110,30,"Renommer")
ButtonGadget(#Changer_Repertoire,410,210,110,30,"Changer
Repertoire")
ButtonGadget(#Repertoire_Superieur,410,250,110,30,"Repertoire_Superieur")
P_F\Connexion = IsFunction(0,"Connexion")
P_F\Lister_Repertoire = IsFunction(0,"Lister_Repertoire")
P_F\Nom_Fichiers = IsFunction(0,"Nom_Fichiers")
P_F\Taille_Fichiers = IsFunction(0,"Taille_Fichiers")
P_F\Attribut_Fichiers = IsFunction(0,"Attribut_Fichiers")
P_F\Creer_Dossier = IsFunction(0,"Creer_Dossier")
P_F\Supprimer_Fichier = IsFunction(0,"Supprimer_Fichier")
P_F\Upload = IsFunction(0,"Upload")
P_F\Download = IsFunction(0,"Download")
P_F\Renommer = IsFunction(0,"Renommer")
P_F\Repertoire_Actuel = IsFunction(0,"Repertoire_Actuel")
P_F\Changer_Repertoire = IsFunction(0,"Changer_Repertoire")
p_F\Repertoire_Superieur = IsFunction(0,"Repertoire_Superieur")
hConnect.l = CallFunctionFast(P_F\Connexion,InputRequester("Adresse
FTP","Entrez
votre adresse FTP",""),InputRequester("Utilisateur","Nom d'utilisateur :",""),InputRequester("Pass","Entrez
votre mot de passe",""))
If hConnect = 0 : MessageRequester("Erreur","Connexion
Impossible",#MB_ICONError) : EndIf
Actualiser(hConnect)
Repeat
Select
WaitWindowEvent()
Case
#PB_EventCloseWindow
Sortie = #Vrai
Case
#PB_EventGadget
Select
EventGadgetID()
Case
#Nv_Rep
If
CallFunctionFast(P_F\Creer_Dossier,hConnect,InputRequester("Nouveau
Dossier","Entrez le nom du nouveau dossier",""))
Actualiser(hConnect)
Else
MessageRequester("Erreur","Impossible de créer le dossier.",#MB_ICONError)
EndIf
Case
#Sup_Fichier
If
GetGadgetState(#Zone_Travail)>-1
If
CallFunctionFast(P_F\Supprimer_Fichier,hConnect,GetGadgetState(#Zone_Travail))
Actualiser(hConnect)
Else
MessageRequester("Erreur","Impossible
de supprimer le fichier.",#MB_ICONError)
EndIf
Else
MessageRequester("Attention","Aucun
fichier n'est selectionné.",#MB_ICONWarning)
EndIf
Case
#Upload
If
CallFunctionFast(P_F\Upload,hConnect,InputRequester("Nom","Entrez
le nom",""),OpenFileRequester("Envoi","","*.*
| *.*",0))
Actualiser(hConnect)
Else
MessageRequester("Erreur","Impossible
d'uploader le fichier",#MB_ICONError)
EndIf
Case
#Download
If
GetGadgetState(#Zone_Travail)>-1
If
CallFunctionFast(P_F\Download,hConnect,GetGadgetState(#Zone_Travail))
Actualiser(hConnect)
Else
MessageRequester("Erreur","Impossible
de telecharger le fichier.",#MB_ICONError)
EndIf
Else
MessageRequester("Attention","Aucun
fichier n'est selectionné.",#MB_ICONWarning)
EndIf
Case
#Renommer
If
GetGadgetState(#Zone_Travail)>-1
If
CallFunctionFast(P_F\Renommer,hConnect,GetGadgetState(#Zone_Travail),InputRequester("Renommer","Tapez
le nouveau nom",""))
Actualiser(hConnect)
Else
MessageRequester("Erreur","Impossible
de renommer le fichier.",#MB_ICONError)
EndIf
Else
MessageRequester("Attention","Aucun
fichier n'est selectionné.",#MB_ICONWarning)
EndIf
Case #Changer_Repertoire
If
GetGadgetState(#Zone_Travail)>-1
If
CallFunctionFast(P_F\Changer_Repertoire,hConnect,GetGadgetState(#Zone_Travail))
Actualiser(hConnect)
Else
MessageRequester("Erreur","Impossible de changer de repertoire.",#MB_ICONError)
EndIf
Else
MessageRequester("Attention","Aucun
fichier n'est selectionné.",#MB_ICONWarning)
EndIf
Case
#Repertoire_Superieur
If
CallFunctionFast(P_F\Repertoire_Superieur,hConnect)
Actualiser(hConnect)
Else
MessageRequester("Erreur","Impossible
de changer de repertoire.",#MB_ICONError)
EndIf
EndSelect
EndSelect
Until
Sortie = #Vrai
EndIf
CloseLibrary(0)
End
EndIF
|