Synchronisation dossier

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
micam
Messages : 46
Inscription : ven. 27/avr./2012 15:29

Synchronisation dossier

Message 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.

Avatar de l’utilisateur
Ar-S
Messages : 9539
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Synchronisation dossier

Message 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 ?
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
micam
Messages : 46
Inscription : ven. 27/avr./2012 15:29

Re: Synchronisation dossier

Message 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.
Avatar de l’utilisateur
majikeyric
Messages : 602
Inscription : dim. 08/déc./2013 23:19
Contact :

Re: Synchronisation dossier

Message 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.
Avatar de l’utilisateur
Ar-S
Messages : 9539
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Synchronisation dossier

Message par Ar-S »

--edit--
J'avais pas vu ta réponse.. 8) 15 min que codais un truc
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
micam
Messages : 46
Inscription : ven. 27/avr./2012 15:29

Re: Synchronisation dossier

Message 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
Répondre