ça fait un bon moment que je cherche à copier un fichier se trouvant sur une clé USB vers un disque dur en créant d'abord le répertoire qui va le contenir ?
C'est pour cette raison que je me tourne vers vous pour solliciter encore de vos conseils bienveillants, je vous propose mon code que voici:
Code : Tout sélectionner
;XIncludeFile "D:\Programmation\Prg Perso\M\Modules\MesGadgets.pb"
;UseModule MesGadgets
Enumeration
#Fenetre_principale
EndEnumeration
Enumeration Gadgets
#Image
#Txt_Installe
#Btn_Install_Diag
#Btn_Quitter
EndEnumeration
Enumeration Polices
#Arial20
#Segoe30
EndEnumeration
Enumeration Images
#ID_Image
EndEnumeration
Global Evenement, ID, Lecteur.s = "", MaCle.s = "", Repertoire.s = "", Fichier.s = "Diagdepiste.exe", fichierSource$ = "", fichierCible$ = ""
;Global.iGadget *Btn_Installe, *Btn_Quitter
;UsePNGImageDecoder()
Procedure.s Detecter_Cle_USB()
For I = 0 To 25
Lecteur = Chr(65 + I) + ":"
ID = ExamineDirectory(#PB_Any, Lecteur, "*")
If ID
If GetDriveType_(Lecteur) = #DRIVE_REMOVABLE
Break
EndIf
FinishDirectory(ID)
EndIf
Next
ProcedureReturn Lecteur
EndProcedure
Procedure Quitter()
Select EventType()
Case #PB_EventType_LeftClick
CloseWindow(#Fenetre_principale)
End
EndSelect
EndProcedure
Procedure Copier_Repertoire()
Select EventType()
Case #PB_EventType_LeftClick
Repertoire = "D:\AFD50" ;pour protéger mon ssd, je le crée sur le D: à modifier pour la version finale
;If CreateDirectory(Repertoire)
; MessageRequester("INFO", "Le répertoire "+Repertoire+" a été créé avec succès", #PB_MessageRequester_Info)
;copier diagdepiste.exe de la clé usb, dans le répertoire que nous venons de créer
MaCle = Detecter_Cle_USB()
fichierSource$ = MaCle+"\"+Fichier
fichierCible$ = Repertoire+"\"+Fichier
Debug "Copie du fichier " + fichierSource$+" vers "+fichierCible$
; Debug CopyFile(fichierSource$, fichierCible$)
;EndIf
EndSelect
EndProcedure
Procedure Programme_principal()
If OpenWindow(#Fenetre_principale, 450, 200, 400, 400, "Installeur", #PB_Window_BorderLess|#PB_Window_ScreenCentered)
TextGadget(#Txt_Installe, 10, 10, 380, 40, "Programme d'installation", #SS_CENTER | #SS_CENTERIMAGE)
;*Btn_Installe = GadgetCouleurBouton(#Btn_Install_Diag, 10, 80, 380, 40, "Installer DiagDépiste")
ButtonGadget(#Btn_Install_Diag, 10, 80, 380, 40, "Installer DiagDepiste")
;If CatchImage(#ID_Image, ?debut, ?fin - ?debut)
; ResizeImage(#ID_Image, 340,170)
; ImageGadget(#Image, 10, 130, 340, 170, ImageID(#ID_Image))
;EndIf
;*Btn_Quitter = GadgetCouleurBouton(#Btn_Quitter, 95, 340, 210, 50, "Q U I T T E R")
ButtonGadget(#Btn_Quitter, 95, 340, 210, 50, "Q U I T T E R")
; Polices
LoadFont(#Arial20, "Arial Black", 20, #PB_Font_Bold|#PB_Font_HighQuality)
LoadFont(#Segoe30, "Segoe UI", 20, #PB_Font_Bold|#PB_Font_HighQuality)
SetGadgetFont(#Txt_Installe, FontID(#Segoe30))
;*Btn_Installe\SetGadgetFont(FontID(#Arial20))
;*Btn_Quitter\SetGadgetFont(FontID(#Arial20))
SetGadgetFont(#Btn_Install_Diag, FontID(#Arial20))
SetGadgetFont(#Btn_Quitter, FontID(#Arial20))
;couleurs
SetWindowColor(#Fenetre_principale, $FEC0BE)
SetGadgetColor(#Txt_Installe, #PB_Gadget_BackColor, GetWindowColor(#Fenetre_principale))
;*Btn_Installe\SetGadgetColor(#PB_Gadget_BackColor, $FBA29A)
;*Btn_Installe\SetGadgetColor(#PB_Gadget_FrontColor, $04DBF7)
;*Btn_Quitter\SetGadgetColor(#PB_Gadget_BackColor, $0000FF)
;*Btn_Quitter\SetGadgetColor(#PB_Gadget_FrontColor, $FFFFFF)
Repeat
Evenement = WaitWindowEvent()
Select Evenement
Case #PB_Event_Gadget
Select EventGadget()
Case #Btn_Quitter
Quitter()
Case #Btn_Install_Diag
Copier_Repertoire()
EndSelect
EndSelect
Until Evenement = #PB_Event_CloseWindow
EndIf
EndProcedure
Programme_principal()
DataSection
;debut:
;IncludeBinary "D:\Programmation\Prg Perso\A\AFD50\Projet commun\DiabDepiste\Logo 50_AFD.png"
;fin:
EndDataSection