IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB 6 et antérieur Discussion :

[VB6] Copier un dossier en fonction d'un autre


Sujet :

VB 6 et antérieur

  1. #1
    Membre habitué Avatar de Sytchev3
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    433
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 433
    Points : 137
    Points
    137
    Par défaut [VB6] Copier un dossier en fonction d'un autre
    Je développe une application VB 6 et je souhaites copier un répertoire en fonction de son contenu.

    Ex : les 2 dossiers contiennent des fichiers et des répertoires

    Dossier source
    |_Etat
    | |_Etat1.txt
    | |_Etat2.txt
    |
    |_toto.exe
    |_bd.mdb
    |_...

    Dossier source
    |_Etat
    | |_Etat8.txt
    | |_Etat12.txt
    | |_Etat31.txt
    | |_...
    |
    |_toto.exe
    |_bd.mdb
    |_...


    Dans mon exemple je souhaite donc copie tous le contenu du dossier Etat(source) dans le dossier Etat(reception) et garder les fichier déja en place et copier et remplacer toto.exe et bd.mdb

    Si quelqu'un à une source dont je pourrais m'inspirer ou si quelqu'un pauvait simplement m'aider cela me rendrait un grand service

    Merci d'avance.

  2. #2
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 040
    Points
    20 040
    Par défaut
    ?? pas trés clair tes explications et ton graphique ...

    ? voir CopyFolder..?

    http://www.developpez.net/forums/vie...400&highlight=

  3. #3
    Membre habitué Avatar de Sytchev3
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    433
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 433
    Points : 137
    Points
    137
    Par défaut
    Pardon c'est vrai que mon graphique n'est pas clair du tout je vais le modifier

  4. #4
    Membre habitué Avatar de Sytchev3
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    433
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 433
    Points : 137
    Points
    137
    Par défaut
    J'ai résolu mon problème merci à tous ceux qui ont cherché :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
     
    Dim sFic As String
    Dim pDicTmp As Dictionary
    Dim lRep As Long
    Dim lFic As Long
    Dim source As String
    Dim dest As String
     
    source = App.Path & "\VTUPDATENV\"
    dest = App.Path & "\VTUPDATE\"
     
    lstscript.AddItem Now & "Mise à jour du dossier " & dest
    fichierlog "Write", nomficlog, "Mise à jour du dossier " & dest
     
       Set pDicTmp = New Dictionary
     
       pDicTmp.Add source, 0
     
       Do Until pDicTmp.Count = 0
          sFic = Dir$(pDicTmp.Keys(0) & "*", 31)
          Do Until sFic = ""
             If Left$(sFic, 1) <> "." And Left$(sFic, 2) <> ".." Then
                If (GetAttr(pDicTmp.Keys(0) & sFic) And vbDirectory) = vbDirectory Then
                   If PathFileExists(dest & Mid$(pDicTmp.Keys(0) & sFic, Len(source) + 1)) = 0 Then
                      MkDir dest & Mid$(pDicTmp.Keys(0) & sFic, Len(source) + 1)
     
                      lRep = lRep + 1
                   End If
                      pDicTmp.Add pDicTmp.Keys(0) & sFic & "\", 0
                Else
                   If PathFileExists(dest & Mid$(pDicTmp.Keys(0) & sFic, Len(source) + 1)) = 0 Then
                      CopyFile pDicTmp.Keys(0) & sFic, dest & Mid$(pDicTmp.Keys(0) & sFic, Len(source) + 1), 0
     
                      lFic = lFic + 1
                   Else
                         CopyFile pDicTmp.Keys(0) & sFic, dest & Mid$(pDicTmp.Keys(0) & sFic, Len(source) + 1), 0
     
                         lFic = lFic + 1
                   End If
                End If
             End If
             DoEvents
             sFic = Dir$
          Loop
          pDicTmp.Remove pDicTmp.Keys(0)
       Loop
     
       Set pDicTmp = Nothing
    Il faut également ajouter les API suivantes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Public Declare Function PathFileExists Lib "shlwapi.dll" Alias "PathFileExistsA" (ByVal pszPath As String) As Long
    Public Declare Function CopyFile Lib "kernel32" Alias "CopyFileA" (ByVal lpExistingFileName As String, ByVal lpNewFileName As String, ByVal bFailIfExists As Long) As Long
     
    Public Declare Function SHGetPathFromIDList Lib "shell32.dll" Alias "SHGetPathFromIDListA" (ByVal pidl As Long, ByVal pszPath As String) As Long

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Fonction pour copier un dossier et son contenu
    Par wassimbik dans le forum Langage
    Réponses: 2
    Dernier message: 15/04/2009, 11h28
  2. [VB6] copier,couper,coller un texte
    Par guizmoh dans le forum VB 6 et antérieur
    Réponses: 14
    Dernier message: 27/03/2006, 22h05
  3. [VB6] comment copier un dossier ??
    Par Ekimasu dans le forum VB 6 et antérieur
    Réponses: 10
    Dernier message: 29/06/2005, 15h03
  4. Comment copier un dossier et ses sous dossiers ?
    Par touhami dans le forum Langage
    Réponses: 5
    Dernier message: 30/12/2004, 16h10
  5. [VB6] Localiser un dossier spécial de Windows
    Par Rohan Michel dans le forum VB 6 et antérieur
    Réponses: 10
    Dernier message: 05/10/2004, 08h20

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo