Installeur

Programmation d'applications complexes
Avatar de l’utilisateur
SPH
Messages : 4937
Inscription : mer. 09/nov./2005 9:53

Installeur

Message par SPH »

J'ai sur mon ordi un repertoire qui a grossi et qui atteind 900Mo.
Hors, un copain veux ce repertoire mais n'a pas de lecteur DVD. Je vais donc couper au mieux ce rep pour mettre d'un coté 700Mo sur un CD et le reste sur un autre CD.
Mais n'etant pas futé, je crains qu'il n'arrive a reconstituer le repertoire comme il faut. Alors, je veux créer un installeur qui demanderait où installer le repertoire, créer le nom du repertoire en question, puis copier tous les fichiers et sous rep du premier CD, puis demander d'inserer le second CD et finir la copie.

"CopyDirectory" permet-il de copier de tous fichiers (caché ou non) et rep+sous_rep d'un repertoire ?????
Avez vous un tout petit exemple de code utilisant "CopyDirectory" ? (oui, la commande dans l'aide est sans exemple et me laisse perplexe)
snobw
Messages : 26
Inscription : ven. 05/nov./2004 12:58

Message par snobw »

un truc tout con, qui n'a rien à voir avec du purebasic.
C'est winrar. Tu parametre winrar de manière à fractionner la compression. tu aura ainsi plusieur fichiers.
Pour la decompression, tu extrait simplement le premier fichier, les autres suivront automatiquement. (tu dois meme pouvoir convertir le premier fichier en exe, ce qui est encore plus simple)
Avatar de l’utilisateur
SPH
Messages : 4937
Inscription : mer. 09/nov./2005 9:53

Message par SPH »

Sniffff, personne pour un petit code ??

!i!i!i!i!i!i!i!i!i!
!i!i!i!i!i!i!
!i!i!i!
//// Informations ////
Intel Core i7 4770 64 bits - GTX 650 Ti
Version de PB : 6.12LTS- 64 bits
Avatar de l’utilisateur
Jacobus
Messages : 1559
Inscription : mar. 06/avr./2004 10:35
Contact :

Message par Jacobus »

"CopyDirectory" permet-il de copier de tous fichiers (caché ou non) et rep+sous_rep d'un repertoire ?????
Avez vous un tout petit exemple de code utilisant "CopyDirectory" ? (oui, la commande dans l'aide est sans exemple et me laisse perplexe)

Code : Tout sélectionner

Enumeration
#WINCOPIER
#btn_selectdir
#explorer
EndEnumeration 
#PROGNAME = "CopyDirectory"

;-CREATION DOSSIER
Global COPYREP$, IndexDir$
COPYREP$ = GetCurrentDirectory()
If FileSize(COPYREP$+"COPYDIR")=-1
 CreateDirectory(COPYREP$+"COPYDIR"):EndIf ;crée le dossier qui recevra la copie

;-FENETRE
ExamineDesktops()
  Largeur$ = Str(DesktopWidth(0))
  Hauteur$ = Str(DesktopHeight(0))
  WinX = 500
  WinY = 300
  If Val(Largeur$)>800 And Val(Hauteur$)>600
    FlagWin = #PB_Window_SystemMenu|#PB_Window_MinimizeGadget|#PB_Window_MaximizeGadget|#PB_Window_ScreenCentered|#PB_Window_TitleBar
  Else 
    FlagWin = #PB_Window_SystemMenu|#PB_Window_MinimizeGadget|#PB_Window_MaximizeGadget|#PB_Window_TitleBar
  EndIf 
  
If OpenWindow(#WINCOPIER,0,0,WinX,WinY,#PROGNAME ,FlagWin)=0 Or CreateGadgetList(WindowID(#WINCOPIER))=0 
End 
EndIf 

  ButtonGadget(#btn_selectdir,200,30,100,30,"Dossier à copier");gros bête bouton au milieu
  GadgetToolTip(#btn_selectdir,"Sélectionnez un dossier à copier. La copie se fera automatiquement")
  ExplorerListGadget(#explorer,10,70,480,200,COPYREP$+"COPYDIR\");on ouvre le dossier de réception pour voir la copie....
  ChangeListIconGadgetDisplay(#explorer, #PB_ListIcon_LargeIcon);affichage d'icônes larges


;-PROGRAMME
Repeat 
 Event = WaitWindowEvent() 
     
 Select Event
   Case #PB_Event_Gadget 
     Select EventGadget()
     
     
     Case #btn_selectdir
        Directory$ = PathRequester("Choisissez le répertoire à copier","c:\")
        If Directory$<>""
          ;on nomme la copie, ici j'ai choisi backup mais on peux donner un autre nom ou extraire le nom original... 
          ;emplacement d'un éventuel savefilerequester() pour choisir le nom de la copie
          copie=CopyDirectory(Directory$, COPYREP$+"COPYDIR\backup", "*.*", #PB_FileSystem_Recursive|#PB_FileSystem_Force);copie tout
          If copie = 0
           MessageRequester("ERREUR!","La copie n'a pu se faire correctement!",#MB_ICONERROR)
          EndIf 
        EndIf 
     
     
;- END                      
              
      EndSelect 
 EndSelect  
Until Event = #PB_Event_CloseWindow
            
End 
;Dans cet exemple, à chaque copie de dossier, le même nom sera donnée à la copie et si des fichiers se trouvant à l'intérieur
;portent un nom identique, ils seront écrasés. Idéal pour une backup régulière d'un même répertoire. sinon il faut ajouter un
; 'saveFileRequester()' pour que l'utilisateur choisisse le nom de sa copie de destination... 
 
Quand tous les glands seront tombés, les feuilles dispersées, la vigueur retombée... Dans la morne solitude, ancré au coeur de ses racines, c'est de sa force maturité qu'il renaîtra en pleine magnificence...Jacobus.
Répondre