Bon, je crois qu'en testant mon code vous comprendrez mieux ce que je veux, regardez vers la liste de droite qui contient les fichiers distants (ftp), ils ne sont précédés d'icones comme c'est le cas d'une listGadgetExplorer...
Code : Tout sélectionner
Enumeration
#Mainform
#SeparLigne1
#Source
#Destination
#Connection
#FrameFtpInfo
#AdFtpTxt
#AdFtp
#exemple1
#UserFtpTxt
#UserFtp
#exemple2
#MpFtpTxt
#MpFtp
#RepLocalFtpTxt
#RepLocalFtp
#exemple3
#RepDistantFtpTxt
#RepDistantFtp
#exemple4
#CheckMemoriser
#FrameFtpCon
#Connexion
#parcourir
#SelectLocalPath
#LocalPath
#localExplorer
#SelectFtpPath
#FtpPath
#FtpExplorer
#Transferer
#StatutList
#FrameObs
#Ftp
EndEnumeration
UseJPEGImageDecoder()
UsePNGImageDecoder()
trans=CatchImage(0, ?trans)
parcourir=CatchImage(1, ?parcourir)
connecter=CatchImage(2, ?connecter)
DataSection
trans:
IncludeBinary "images\trans.jpg"
parcourir:
IncludeBinary "images\open.jpg"
connecter:
IncludeBinary "images\connecter.jpg"
EndDataSection
Global WindowStyle.i=#PB_Window_MinimizeGadget|#PB_Window_MaximizeGadget|#PB_Window_ScreenCentered|#PB_Window_SizeGadget
Global ErrorFound,Result,LocalPath$,FtpPath$,WChemin$,wFileSelected$
Global NbreFT,NbreEchec,Item
Global WFtp$,WuserFtp$,WMpFtp$
ExamineDesktops()
Wlargeur=DesktopWidth(0)
Whauteur=DesktopHeight(0)
If OpenWindow(#Mainform, 0,0, Wlargeur, Whauteur, "Pro_FTP", WindowStyle)
If CreateGadgetList(WindowID(#Mainform))
WLar=(Wlargeur-100)/2:WHaut=(Whauteur/2) : wrow=260 : wcol=70+wlar
Frame3DGadget(#FrameFtpInfo,10,10,460,170,"Paramètres de connexion...")
TextGadget(#AdFtpTxt, 20, 30, 100, 20,"Serveur FTP :")
ComboBoxGadget(#AdFtp, 120, 30, 200, 100,#PB_ComboBox_Editable)
TextGadget(#Exemple1, 330, 30, 110, 20,"(ex.: ftp.purebasic.com)")
TextGadget(#UserFtpTxt, 20, 55, 100, 20,"Nom utilisateur :")
ComboBoxGadget(#UserFtp, 120, 55, 200, 100,#PB_ComboBox_Editable)
TextGadget(#Exemple2, 330, 55, 110, 20,"(ex.: fred)")
TextGadget(#MpFtpTxt, 20, 80, 100, 20,"Mot de passe :")
StringGadget(#MpFtp, 120, 80, 200, 20,"",#PB_String_Password)
TextGadget(#RepLocalFtpTxt, 20, 105, 100, 20,"Répertoire local")
ButtonImageGadget(#parcourir, 96, 102, 25, 22, ImageID(1))
StringGadget(#RepLocalFtp, 122, 105, 198, 20,"")
TextGadget(#Exemple3, 330, 105, 110, 20,"(ex.: c:\mes fichiers\")
TextGadget(#RepDistantFtpTxt, 20, 130, 100, 20,"Répertoire distant")
StringGadget(#RepDistantFtp, 120, 130, 200, 20,"")
TextGadget(#Exemple4, 330, 130, 110, 20,"(ex.: \public_html\")
CheckBoxGadget(#CheckMemoriser,120,150,250,20,"Mémoriser les paramètres de connexion")
ButtonImageGadget(#Connection, 9+wlar, 55, 61, 45, ImageID(2))
Frame3DGadget(#FrameFtpCon,wcol,10,460,170,"Statut...")
ListViewGadget(#StatutList, wcol+10, 30, 440,135)
Frame3DGadget(#SeparLigne1,10,wrow-70,wlargeur-42,6,"",#PB_Frame3D_Single)
ButtonImageGadget(#SelectLocalPath,10, wrow-15, 30, 20,ImageID(1))
TextGadget(#LocalPath, 40, wrow-15, wlar-30, 20,"", #PB_Text_Border)
ExplorerListGadget(#LocalExplorer, 10, wrow+10, Wlar, whaut, "", #PB_Explorer_MultiSelect)
ButtonImageGadget(#Transferer, 15+wlar, wrow+90, 49, 30, ImageID(0))
ButtonImageGadget(#SelectFtpPath, wcol, wrow-15, 30, 20,ImageID(1))
TextGadget(#FtpPath, wcol+30, wrow-15, wlar-30, 20,"", #PB_Text_Border)
ListIconGadget(#FtpExplorer, wcol, wrow+10, wlar, whaut,"Nom",160,#PB_ListIcon_GridLines )
AddGadgetColumn(#FtpExplorer,1, "Taille", 80)
AddGadgetColumn(#FtpExplorer,2, "Type", 80)
AddGadgetColumn(#FtpExplorer,3, "Date modification", 130)
EndIf
EndIf
SetGadgetColor(#StatutList,#PB_Gadget_BackColor,RGB(98, 98, 98))
SetGadgetColor(#StatutList,#PB_Gadget_FrontColor,RGB(230, 230, 230))
SetGadgetColor(#exemple1, #PB_Gadget_FrontColor,RGB(140, 140, 140))
SetGadgetColor(#exemple2, #PB_Gadget_FrontColor,RGB(140, 140, 140))
SetGadgetColor(#exemple3, #PB_Gadget_FrontColor,RGB(140, 140, 140))
SetGadgetColor(#exemple4, #PB_Gadget_FrontColor,RGB(140, 140, 140))
GadgetToolTip(#Transferer, "Démarrer le transfert...")
GadgetToolTip(#Parcourir, "Parcourir...")
GadgetToolTip(#SelectFtpPath, "Parcourir...")
GadgetToolTip(#SelectLocalPath, "Parcourir...")
GadgetToolTip(#Connection, "Se connecter...")
DisableGadget(#Transferer,1)
;Valeurs par défaut (pour test)
WFtp$="ftp.purebasic.com"
WuserFtp$="fred"
WMpFtp$="abcdef"
LocalPath$="D:\"
FtpPath$="/public_html"
wDate$ = FormatDate("%dd/%mm/%yyyy", Date())
SetGadgetText(#AdFtp,WFtp$)
SetGadgetText(#UserFtp,WuserFtp$)
SetGadgetText(#MpFtp,WMpFtp$)
SetGadgetText(#RepLocalFtp,LocalPath$)
SetGadgetText(#RepDistantFtp,FtpPath$)
SetGadgetText(#LocalPath,LocalPath$)
SetGadgetText(#FtpPath,FtpPath$)
InitNetwork()
Repeat
EventID = WaitWindowEvent()
If EventID = #PB_Event_CloseWindow
End
EndIf
If EventID = #PB_Event_Gadget
Select EventGadget()
Case #Connection
ClearGadgetItemList(#FtpExplorer)
WFtp$=GetGadgetText(#AdFtp)
WuserFtp$=GetGadgetText(#UserFtp)
WMpFtp$=GetGadgetText(#MpFtp)
LocalPath$=GetGadgetText(#RepLocalFtp)
FtpPath$=GetGadgetText(#RepDistantFtp)
If wFtp$=""
MessageRequester("Erreur","Adresse FTP incorrecte ! ")
Goto Fin_Connection
EndIf
If wUserFtp$=""
MessageRequester("Erreur","Nom utilisateur incorrect ! ")
Goto Fin_Connection
EndIf
If wMpFtp$=""
MessageRequester("Erreur","Mot de passe incorrect ! ")
Goto Fin_Connection
EndIf
If LocalPath$=""
MessageRequester("Erreur","Saisissez le répertoire initial local ! ")
Goto Fin_Connection
EndIf
If FtpPath$=""
MessageRequester("Erreur","Indiquez le répertoire initial distant ! ")
Goto Fin_Connection
EndIf
;Tentative de connection au serveur ftp...
;Cette adresse ftp marche : 127.0.0.1
If OpenFTP(#ftp, wFtp$, WuserFtp$, wMpFtp$)
MessageRequester("Etat de la connection", "Serveur ftp connecté avec succès")
Else
MessageRequester("Connection error", "Impossible de se connecter au serveur !")
Goto Fin_Connection
EndIf
SetGadgetText(#FtpExplorer,FtpPath$)
If SetFTPDirectory(#Ftp, FtpPath$)
If ExamineFTPDirectory(#Ftp)
While NextFTPDirectoryEntry(#Ftp)
Wtype=FTPDirectoryEntryType(#Ftp)
Wdate=FTPDirectoryEntryDate(#Ftp)
wDate$ = FormatDate("%dd/%mm/%yyyy", wDate)
If wtype =#PB_FTP_File
AddGadgetItem(#FtpExplorer,-1,FTPDirectoryEntryName(#Ftp)+Chr(10)+""+Chr(10)+"fichier"+Chr(10)+wdate$)
EndIf
If wtype =#PB_FTP_Directory
AddGadgetItem(#FtpExplorer,-1,FTPDirectoryEntryName(#Ftp)+Chr(10)+""+Chr(10)+"dossier"+Chr(10)+wdate$)
EndIf
Wend
EndIf
EndIf
Fin_Connection :
Case #LocalExplorer
If EventType()=#PB_EventType_Change
wchemin$=GetGadgetText(#LocalExplorer)
SetGadgetText(#LocalPath,wchemin$)
LocalPath$=wchemin$
EndIf
Case #FtpExplorer
If EventType()=#PB_EventType_Change
wchemin$=GetGadgetText(#FtpExplorer)
SetGadgetText(#FtpPath,wchemin$)
FtpPath$=wchemin$
EndIf
Case #SelectFtpPath
WChemin$=PathRequester("Sélectionnez un dossier:", FtpPath$)
If wchemin$
SetGadgetText(#FtpPath,wChemin$)
SetGadgetText(#FtpExplorer,wChemin$)
ResizeGadget(#FtpExplorer, #PB_Ignore, #PB_Ignore,#PB_Ignore, #PB_Ignore)
FtpPath$=wchemin$
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)
LocalPath$=wchemin$
EndIf
Case #Parcourir
WChemin$=PathRequester("Sélectionnez un dossier:", LocalPath$)
If wchemin$
SetGadgetText(#RepLocalFtp,wChemin$)
SetGadgetText(#LocalExplorer,wChemin$)
SetGadgetText(#LocalPath,wchemin$)
ResizeGadget(#LocalExplorer, #PB_Ignore, #PB_Ignore,#PB_Ignore, #PB_Ignore)
LocalPath$=wchemin$
EndIf
Case #Transferer
ErrorFound=0
NbreFt=0
NbreEchec=0
ClearGadgetItemList(#StatutList)
FtpPath$=GetGadgetText(#FtpPath)
If ExamineDirectory(0, FtpPath$, "*.*")
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(FtpPath$)
MessageRequester("Nouveau dossier","Le dossier " + FtpPath$+ " a été créé avec succès!")
Else
MessageRequester("Erreur","Le dossier " + FtpPath$+ " 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$, FtpPath$ + 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$, FtpPath$ + 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