Comparateur de fichiers [Résolu]

Signaler
Messages postés
79
Date d'inscription
mercredi 30 août 2006
Statut
Membre
Dernière intervention
15 mai 2009
-
Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
-
Bonjours, voila j'ai pour projet de fair en vb6 une petite application qui me permettra de comparer l'ensemble de mes fichiers.
Pour le moment, j'aimerai juste pouvoir copier tout le contenue d'un de mes dossier que si un de mes fichiers existent pas déjà dans ma cible.

Je vous fait part de mon code

Private Sub Form_Load()

Dim oFSO, oFld
Set oFSO = CreateObject("Scripting.FileSystemObject")
Set oFld = oFSO.GetFolder("C:\Documents and Settings\Fabrice\Bureau\fabtest")
// ma difficulté est surtout ici, je ne sais pas trop comment vérifier fichiers par fichiers.
If Dir("C:\Documents and Settings\Fabrice\Bureau\fjf", vbHidden) <> "" Then
    MsgBox "Erreur"
Else

oFld.Copy "C:\Documents and Settings\Fabrice\Bureau\fjf", True ' false the : pour copier en "écrasant" destination si existe..
End If

End Sub

Merci d'avance pour me donner un coup de main
A bientôt

Fabrice,

9 réponses

Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
56
Re,
Je pense qu'en jouant avec Lister tous les fichiers d'un repertoire
Et avec Copier un fichier tu devrais t'en sortir<hr size="2" width="100%" />@+: Ju£i?n
Pensez: Réponse
Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
56
Re,
Euh le bouton réponse acceptée est pour le ou les post qui t'ont aider à avancer

<hr size="2" width="100%" />@+: Ju£i?n
Pensez: Réponse
Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
56
Salut,
Pour faire une boucle pour chaque fichier contenu dans ton répertoire

Private Sub Form_Load()

Dim oFSO, oFld, oFILE
Set oFSO =  CreateObject("Scripting.FileSystemObject")
Set oFld = _
  oFSO.GetFolder("C:\Documents and Settings\Fabrice\Bureau\fabtest")
// ma difficulté est surtout ici, je ne sais pas trop comment vérifier fichiers _
  par fichiers.
For Each oFILE In OFld.Files
    If Dir(oFile.Path, vbHidden) <> Vbnullstring Then    MsgBox "Erreur"
Next

oFld.Copy "C:\Documents and Settings\Fabrice\Bureau\fjf", True ' false _
  the : pour copier en "écrasant" destination si existe..
End If

End Sub, ----
(Coloration syntaxique automatique par Kenji)

Si tu utilise Dir() pourquoi surcharge le programme avec le FileSystemObject?

<hr size ="2" width="100%" />@+: Ju£i?n
Pensez: Réponse
Messages postés
79
Date d'inscription
mercredi 30 août 2006
Statut
Membre
Dernière intervention
15 mai 2009

Oui, le dir est pas à utiliser, mais justement j'aimerai pouvoir fair quelque chose de semblable avec Ofso et donc comparer tous mes fichiers.
La difficulté est plus basé cette utilisation des fichiers.
Je n'arrive pas à trouver comment je peux fair ainsi
Messages postés
79
Date d'inscription
mercredi 30 août 2006
Statut
Membre
Dernière intervention
15 mai 2009

Très bien je vais voir tes sources merci
Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
56
Re,
Non justement si tu pouvais te passer de Ofso ca serait mieux (moins gourmand en ressources)

<hr size="2" width="100%" />@+: Ju£i?n
Pensez: Réponse
Messages postés
79
Date d'inscription
mercredi 30 août 2006
Statut
Membre
Dernière intervention
15 mai 2009

Je suis de retour avec une petit précision
J'ai pris la source au lien que tu m'as gentiment proposé et il est vrai que cela m'éclaircie un peu ma lanterne.
Cependant lors de l'utilisation de la fonction, c'est cette variable 'aResultat(i) que je dois comparer avec mon dossier cible pour voir si le fichier existe déjà ou non ?

'   EXEMPLE D'UTILISATION
Private Sub Command1_Click() 
    Dim aResultat() As String 
    Dim lRet As Long 
    Dim i As Long 

    lRet = GetFilesPathFromDirectory("C:\Windows", aResultat()) 
    If lRet <> -1 Then 
        For i = 0 To lRet 
            Debug.Print "Fichier " & i + 1 & " = " & aResultat(i) 
        Next i
    End If 
End Sub
Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
56
Re,
Ouaip, le mieux reste encore d'essayer

<hr size="2" width="100%" />@+: Ju£i?n
Pensez: Réponse
Messages postés
79
Date d'inscription
mercredi 30 août 2006
Statut
Membre
Dernière intervention
15 mai 2009

:) Oui, Merci Jrivet