Page 1 sur 1

Synchronisation dossier

Publié : sam. 11/oct./2014 11:03
par micam
Bonjour,
Je tourne en rond depuis un bon moment. J'aimerai synchroniser les fichiers de 2 dossiers.
1 - Je voudrai effacer (en créant la liste : Liste_a_effacer$()) les fichiers qui se trouvent "uniquement" sur la liste : Liste_Hdd_Usb$()
2 - je voudrai copier (en créant la liste : Liste_a_copier$()) les fichiers qui se trouvent "uniquement" sur la liste : Liste_PC$()
J'ai trouvé quelques exemples, mais je n'arrive pas à les adapter à mes besoins.
Si quelqu’un peut me donner un coup de main?
Merci d'avance pour votre aide.

Code : Tout sélectionner

Global NewList Liste_PC$()
Global NewList Liste_Hdd_Usb$()

Global NewList Liste_a_copier$()
Global NewList Liste_a_effacer$()

;Liste_PC$()
AddElement(Liste_PC$())
      Liste_PC$() = "image_1"
AddElement(Liste_PC$())
      Liste_PC$() = "image_16"
AddElement(Liste_PC$())
      Liste_PC$() = "image_3"
AddElement(Liste_PC$())
      Liste_PC$() = "image_18"
AddElement(Liste_PC$())
      Liste_PC$() = "image_4"
AddElement(Liste_PC$())
      Liste_PC$() = "image_25"

;Liste_Hdd_Usb$()
AddElement(Liste_Hdd_Usb$())
      Liste_Hdd_Usb$() = "image_1"
AddElement(Liste_Hdd_Usb$())
      Liste_Hdd_Usb$() = "image_8"
AddElement(Liste_Hdd_Usb$())
      Liste_Hdd_Usb$() = "image_3"
AddElement(Liste_Hdd_Usb$())
      Liste_Hdd_Usb$() = "image_12"

      ; 1 - Je voudrai effacer (en créant la liste : Liste_a_effacer$()) les fichiers qui se trouvent "uniquement" sur la liste : Liste_Hdd_Usb$()
      ; 2 - je voudrai copier (en créant la liste : Liste_a_copier$()) les fichiers qui se trouvent "uniquement" sur la liste : Liste_PC$()
      
; du style
ForEach Liste_PC$()
  ForEach Liste_Hdd_Usb$()
        If  FindString(Liste_Hdd_Usb$(), Liste_PC$())
          Debug Liste_Hdd_Usb$() + "      seulement dans Hdd_Usb"
  EndIf 
Next
Next



ForEach Liste_Hdd_Usb$()
  ForEach Liste_PC$()
        If  FindString(Liste_PC$(), Liste_Hdd_Usb$)
          Debug Liste_PC$() + "      seulement dans PC$"
  EndIf 
Next
Next
;mais cette boucle ne marche pas.


Re: Synchronisation dossier

Publié : sam. 11/oct./2014 11:18
par Ar-S
En gros tu veux copier une liste quoi... ?

Code : Tout sélectionner

CopyList(Liste_Hdd_Usb$(), Liste_a_effacer$())
CopyList( Liste_PC$(), Liste_a_copier$())
What else ?

Re: Synchronisation dossier

Publié : sam. 11/oct./2014 12:53
par micam
Merci de ta réponse Ar-S.
Je pense que je me suis mal expliqué.
Ma boucle ne fonctionne pas.
Elle aurait du me sortir :

Liste_PC$ :
image_16
image_18
image_4
image_25
(que je copierai ensuite dans "Liste_a_copier$()")


Liste_Hdd_Usb$ :
image_8
image_12
(que je copierai ensuite dans "Liste_a_effacer$() ")

J'espère que c'est plus clair.

Re: Synchronisation dossier

Publié : sam. 11/oct./2014 14:33
par majikeyric
Comme ça, c'est mieux.

Code : Tout sélectionner

EnableExplicit

Global NewList Liste_PC$()
Global NewList Liste_Hdd_Usb$()

Global NewList Liste_a_copier$()
Global NewList Liste_a_effacer$()

;Liste_PC$()
AddElement(Liste_PC$())
Liste_PC$() = "image_1"
AddElement(Liste_PC$())
Liste_PC$() = "image_16"
AddElement(Liste_PC$())
Liste_PC$() = "image_3"
AddElement(Liste_PC$())
Liste_PC$() = "image_18"
AddElement(Liste_PC$())
Liste_PC$() = "image_4"
AddElement(Liste_PC$())
Liste_PC$() = "image_25"

;Liste_Hdd_Usb$()
AddElement(Liste_Hdd_Usb$())
Liste_Hdd_Usb$() = "image_1"
AddElement(Liste_Hdd_Usb$())
Liste_Hdd_Usb$() = "image_8"
AddElement(Liste_Hdd_Usb$())
Liste_Hdd_Usb$() = "image_3"
AddElement(Liste_Hdd_Usb$())
Liste_Hdd_Usb$() = "image_12"

; 1 - Je voudrai effacer (en créant la liste : Liste_a_effacer$()) les fichiers qui se trouvent "uniquement" sur la liste : Liste_Hdd_Usb$()
; 2 - je voudrai copier (en créant la liste : Liste_a_copier$()) les fichiers qui se trouvent "uniquement" sur la liste : Liste_PC$()

; du style

Global.b trouve

ForEach Liste_PC$()
	trouve=#False
	ForEach Liste_Hdd_Usb$()
		If  Liste_PC$()=Liste_Hdd_Usb$()
			trouve=#True
			Break
		EndIf
	Next
	If Not trouve
		AddElement(Liste_a_copier$())
		Liste_a_copier$()=Liste_PC$()
	EndIf
Next

ForEach Liste_Hdd_Usb$()
	trouve=#False
	ForEach Liste_PC$()
		If  Liste_Hdd_Usb$()=Liste_PC$()
			trouve=#True
			Break
		EndIf
	Next
	If Not trouve
		AddElement(Liste_a_effacer$())
		Liste_a_effacer$()=Liste_Hdd_Usb$()
	EndIf
Next
Si tu veux faire de la synchronisation de répertoire de fichiers, il faut aussi lorsque tu compares deux fichiers de même noms,
que tu compares leurs dates de modification pour savoir si un est plus récent que l'autre.

Re: Synchronisation dossier

Publié : sam. 11/oct./2014 14:56
par Ar-S
--edit--
J'avais pas vu ta réponse.. 8) 15 min que codais un truc

Re: Synchronisation dossier

Publié : sam. 11/oct./2014 15:39
par micam
Merci majikeyric.
Nickel. C'est exactement ce que j'essayais de faire.
Un GRAND merci...
majikeyric a écrit : Si tu veux faire de la synchronisation de répertoire de fichiers, il faut aussi lorsque tu compares deux fichiers de même noms,
que tu compares leurs dates de modification pour savoir si un est plus récent que l'autre.
Je vais me servir de cette appli pour mettre à jour un dossier sur mon site perso. Je ne veux conserver que les derniers fichiers, je n'ai pas besoin de comparer la date ou la taille. Merci quand même de me mettre en garde.

Merci à tous les participants de ce forum qui me sont d'une aide précieuse.

Ar-S, j'essaierai d'être plus clair la prochaine fois. Merci