Recopie de l'architecture d'un dossier
Publié : mer. 13/juil./2005 14:53
Copier l'architecture des dossiers d'un dossier vers un autre (différant d'un cpier collé car seul les dossiers sont dupliqué, les fichiers ne le sont pas)
Le programme n'a rien de compliquer mais ça peut servir. Je l'ai fait car j'en avais besion au boulot (d'ou la licence sur clic droit)
Le programme n'a rien de compliquer mais ça peut servir. Je l'ai fait car j'en avais besion au boulot (d'ou la licence sur clic droit)
Code : Tout sélectionner
Global Dossier1.s, Dossier2.s
Procedure Copie(n, Dossier.s)
If Right(Dossier, 1) <> "\"
Dossier + "\"
EndIf
If ExamineDirectory(n, Dossier1 + Dossier, "*.*")
Repeat
FileType = NextDirectoryEntry()
If FileType = 2
Nom.s = DirectoryEntryName()
If Nom <> "." And Nom <> ".."
CreateDirectory(Dossier2 + Dossier + Nom)
Copie(n + 1, Dossier + Nom)
UseDirectory(n)
EndIf
EndIf
Until FileType = 0
EndIf
EndProcedure
OpenWindow(0, 0, 0, 250, 100, #PB_Window_SystemMenu | #PB_Window_ScreenCentered | #PB_Window_MinimizeGadget, "Architecture de dossier")
CreateGadgetList(WindowID())
TextGadget(#pb_any, 5, 5, 240, 15, "Dossier à dupliquer")
StringGadget(0, 5, 20, 220, 20, "", #PB_String_ReadOnly)
ButtonGadget(1, 225, 20, 20, 20, "...")
TextGadget(#pb_any, 5, 40, 240, 15, "Dossier de destination")
StringGadget(2, 5, 55, 220, 20, "", #PB_String_ReadOnly)
ButtonGadget(3, 225, 55, 20, 20, "...")
ButtonGadget(4, 5, 75, 240, 20, "Lancer")
Repeat
Event = WaitWindowEvent()
If Event = #PB_Event_Gadget
Select EventGadgetID()
Case 1
Txt.s = PathRequester("Dossier à dupliquer", Dossier1)
If Txt
Dossier1 = Txt
If Right(Dossier1, 1) <> "\"
Dossier1 + "\"
EndIf
SetGadgetText(0, Dossier1)
EndIf
Case 3
Txt.s = PathRequester("Dossier de destination", Dossier2)
If Txt
Dossier2 = Txt
If Right(Dossier2, 1) <> "\"
Dossier2 + "\"
EndIf
SetGadgetText(2, Dossier2)
EndIf
Case 4
If Dossier1 And Dossier2 And FileSize(Dossier1) = -2 And FileSize(Dossier2) = -2
Copie(0, "")
MessageRequester("Architecture de dossier", "Recopie de l'architecture du dossier terminée.")
Else
MessageRequester("Architecture de dossier", "Veuillez remplir tous les champs.")
EndIf
EndSelect
ElseIf Event = #WM_RBUTTONDown
MessageRequester("Concepteur", "LSI Développements [BOUGUIN Régis]" + Chr(10) + "Programme gratuit pour l'usage personnel et en entreprise.")
EndIf
Until Event = #WM_Close