Code : Tout sélectionner
Enumeration
#Mainform
#FrameCon
#AdFtpTxt
#AdFtp
#exemple1
#UserFtpTxt
#UserFtp
#exemple2
#MpFtpTxt
#MpFtp
#RepLocalTxt
#RepLocal
#exemple3
#RepDistantTxt
#RepDistant
#exemple4
#SelectLocalPath
#LocalPath
#localExplorer
#SelectNetworkPath
#NetworkPath
#NetworkExplorer
#Transferer
#StatutList
EndEnumeration
UseJPEGImageDecoder()
trans=CatchImage(0, ?trans)
open1=CatchImage(1, ?open)
open2=CatchImage(2, ?open)
DataSection
trans:
IncludeBinary "images\trans.jpg"
open:
IncludeBinary "images\open.jpg"
EndDataSection
Global WindowStyle.i=#PB_Window_MinimizeGadget|#PB_Window_MaximizeGadget|#PB_Window_ScreenCentered|#PB_Window_SizeGadget
Global ErrorFound,Result,LocalPath$,NetworkPath$,WChemin$,wFileSelected$
Global NbreFT,NbreEchec,Item
ExamineDesktops()
Wlargeur=DesktopWidth(0)
Whauteur=DesktopHeight(0)
If OpenWindow(#Mainform, 0,0, Wlargeur, Whauteur, "Ftp_PRO", WindowStyle)
If CreateGadgetList(WindowID(#Mainform))
WLar=(Wlargeur-100)/2:WHaut=(Whauteur/2) : wrow=200 : wcol=70+wlar
Frame3DGadget(#FrameCon,10,10,460,160,"Connexion...")
TextGadget(#AdFtpTxt, 20, 30, 100, 20,"Serveur FTP :")
ComboBoxGadget(#AdFtp, 120, 30, 200, 100,#PB_ComboBox_Editable)
TextGadget(#Exemple1, 330, 30, 140, 20,"(exemple: ftp.purebasic.fr)")
TextGadget(#UserFtpTxt, 20, 55, 100, 20,"Nom utilisateur :")
ComboBoxGadget(#UserFtp, 120, 55, 200, 100,#PB_ComboBox_Editable)
TextGadget(#Exemple2, 330, 55, 140, 20,"(exemple: fred)")
TextGadget(#MpFtpTxt, 20, 80, 100, 20,"Mot de passe :")
StringGadget(#MpFtp, 120, 80, 200, 20,"",#PB_String_Password)
TextGadget(#RepLocalTxt, 20, 105, 100, 20,"Répertoire local")
StringGadget(#RepLocal, 120, 105, 200, 20,"")
TextGadget(#Exemple3, 330, 105, 140, 20,"(exemple: c:\mes fichiers\")
TextGadget(#RepDistantTxt, 20, 130, 100, 20,"Répertoire distant")
StringGadget(#RepDistant, 120, 130, 200, 20,"")
TextGadget(#Exemple4, 330, 130, 140, 20,"(exemple: \public_html\")
ButtonImageGadget(#SelectLocalPath,10, wrow-25, 30, 20,ImageID(1))
TextGadget(#LocalPath, 40, wrow-25, wlar-30, 20,"", #PB_Text_Border)
ExplorerListGadget(#LocalExplorer, 10, wrow, Wlar, whaut, "", #PB_Explorer_MultiSelect)
ButtonImageGadget(#Transferer, 20+wlar, wrow, 35, 30, ImageID(0))
ButtonImageGadget(#SelectNetworkPath, wcol, wrow-25, 30, 20,ImageID(2))
TextGadget(#NetworkPath, wcol+30, wrow-25, wlar-30, 20,"", #PB_Text_Border)
ExplorerListGadget(#NetworkExplorer, wcol, wrow, wlar, whaut,"")
wrow=wrow+whaut+10
ListViewGadget(#StatutList, 10, wrow, 60+(wlar*2),100)
EndIf
EndIf
SetGadgetColor(#LocalPath, #PB_Gadget_BackColor,RGB(250, 250, 250))
SetGadgetColor(#NetworkPath, #PB_Gadget_BackColor,RGB(250, 250, 250))
SetGadgetColor(#StatutList, #PB_Gadget_BackColor,RGB(98, 98, 98))
SetGadgetColor(#StatutList, #PB_Gadget_FrontColor,RGB(230, 230, 230))
GadgetToolTip(#SelectLocalPath, "Parcourir...")
GadgetToolTip(#SelectNetworkPath, "Parcourir...")
GadgetToolTip(#Transferer, "Transférer...")
LocalPath$="c:\"
NetworkPath$="c:\testftp\"
Repeat
EventID = WaitWindowEvent()
If EventID = #PB_Event_CloseWindow
End
EndIf
If EventID = #PB_Event_Gadget
Select EventGadget()
Case #SelectNetworkPath
WChemin$=PathRequester("Sélectionnez un dossier:", NetworkPath$)
If wchemin$
SetGadgetText(#NetworkPath,wChemin$)
SetGadgetText(#NetworkExplorer,wChemin$)
ResizeGadget(#NetworkExplorer, #PB_Ignore, #PB_Ignore,#PB_Ignore, #PB_Ignore)
EndIf
Case #SelectLocalPath
WChemin$=PathRequester("Sélectionnez un dossier:", LocalPath$)
If wchemin$
SetGadgetText(#LocalPath,wChemin$)
SetGadgetText(#LocalExplorer,wChemin$)
ResizeGadget(#LocalExplorer, #PB_Ignore, #PB_Ignore,#PB_Ignore, #PB_Ignore)
EndIf
Case #Transferer
ErrorFound=0
NbreFt=0
NbreEchec=0
ClearGadgetItemList(#StatutList)
NetworkPath$=GetGadgetText(#NetworkPath)
If ExamineDirectory(0, NetworkPath$, "*.*")
If NextDirectoryEntry(0) And DirectoryEntryName(0)<>"." And DirectoryEntryName(0)<>".."
FinishDirectory(0)
EndIf
Else
Result = MessageRequester("Erreur", "Le dossier de destination n'existe pas. Voulez-vous le créer? ", #PB_MessageRequester_YesNo)
If Result =6
If CreateDirectory(NetworkPath$)
MessageRequester("Nouveau dossier","Le dossier " + NetworkPath$+ " a été créé avec succès!")
Else
MessageRequester("Erreur","Le dossier " + NetworkPath$+ " n'a pas pu être créé!")
ErrorFound=1
EndIf
Else
ErrorFound=1
EndIf
EndIf
If ErrorFound=1 : Goto Fin_Transfert : EndIf
;------------ Transfert de fichiers
For item=0 To CountGadgetItems(#LocalExplorer)
If GetGadgetItemState(#LocalExplorer, item) & #PB_Explorer_Selected
wFileSelected$=GetGadgetItemText(#LocalExplorer, item)
If GetGadgetItemState(#LocalExplorer, item) & #PB_Explorer_Directory
If CopyDirectory(wFileSelected$, NetworkPath$ + wFileSelected$, "",#PB_FileSystem_Recursive | #PB_FileSystem_Force)
AddGadgetItem (#StatutList,-1,Space(10) + wFileSelected$ + " a été transféré avec succès")
NbreFt=NbreFt+1
Else
AddGadgetItem (#StatutList,-1,Space(10)+wFileSelected$ + " n'a pas pu être transféré")
NbreEchec=NbreEchec+1
EndIf
EndIf
If GetGadgetItemState(#LocalExplorer, item) & #PB_Explorer_File
If CopyFile(wFileSelected$, NetworkPath$ + wFileSelected$)
AddGadgetItem (#StatutList,-1,Space(10)+wFileSelected$ + " a été transféré avec succès")
NbreFt=NbreFt+1
Else
AddGadgetItem (#StatutList,-1,Space(10)+wFileSelected$ + " n'a pas pu être transféré")
NbreEchec=NbreEchec+1
EndIf
EndIf
EndIf
Next item
If NbreEchec=0 And NbreFt=0
MessageRequester("Erreur","Aucun fichier n'a été sélectionné pour le tansfert !")
Else
AddGadgetItem (#StatutList,-1,"___________________________________________________________")
AddGadgetItem (#StatutList,-1,Space(10)+" Transfert terminé !")
AddGadgetItem (#StatutList,-1,Space(10)+" Nbre de fichiers transférés : " + Str(NbreFt))
AddGadgetItem (#StatutList,-1,Space(10)+" Nbre de fichiers non transférés : " + Str(NbreEchec))
EndIf
Fin_Transfert :
EndSelect
EndIf
ForEver
Désolé pour les images mais il faut les prévoir pour tester ce code.
Bon, pour l'instant, ça marche comme je veux, mais je bloque ici:
Quand je sélectionne (ou j'ouvre un dossier) dans l'explorergadget, le chemin du contenu des fichiers listés dans le gadget doit changer. Comment faire pour récupérer ce chemin et le mettre dans la zône texte prévue à cet effet au dessus de l'explorer.
Je ne sais pas si je suis clair mais parfois j'ai du mal à m'exprimer...
Je vais essayer de simplifier ma question:
Comment connaître le chemin complet d'un fichier sélectionné dans un ExporerListGadget ?
Mon but est de faire apparaître ce chemin dans la zone texte au dessus de l' ExporerListGadget
Merci