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 :

Parcourir un répertoire et stocker son chemin complet


Sujet :

VB 6 et antérieur

  1. #1
    Membre régulier Avatar de Paloma
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    228
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 228
    Points : 79
    Points
    79
    Par défaut Parcourir un répertoire et stocker son chemin complet
    Bonjour,

    Je travaille sur Visual basic 6 sous CATIA. et oui ça arrive
    Alors voilà, j'aurais besoin de vos lumières.

    J'ai besoin d'utiliser un bouton parcourir pour sélectionner un répertoire.
    Quand l'utilisateur choisi son répertoire, une variable stock le chemin complet.

    Voici le code de mon bouton "Parcourir" :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Private Sub CmdBrowseJobDirectory_Click()
        'Récupération du chemin de Travail
               MsgBox SelectFolder("Sélectionnez un répertoire :", Me.hWnd)
        strPathJob = "ma_variable"
     
        ' Permet de modifier la valeur Text du champ de texte.
               txtPathJobDirectory.text = strPathJob 'indique le chemin complet
               txtPathJobDirectory.BackColor = &H80000005  'change la couleur du label
     
        'initialisation des variables pour les chemins de transfert/copie de fichier
               strPathJobIN = strPathJob & "\IN\"
               strPathJobOUT = strPathJob & "\OUT\"
    End Sub
    --------------------------------------------------------------------------
    Pour ça, j'utilise un module nommé; selectJobDirectory dont le code est :

    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
    Private Const BIF_RETURNONLYFSDIRS = 1
    Private Const BIF_DONTGOBELOWDOMAIN = 2
     
    Private Declare Function SHBrowseForFolder Lib "shell32" (lpbi As BrowseInfo) As Long
    Private Declare Function SHGetPathFromIDList Lib "shell32" (ByVal pidList As Long, _
        ByVal lpBuffer As String) As Long
    Private Declare Function lstrcat Lib "kernel32" Alias "lstrcatA" (ByVal lpString1 As String, _
        ByVal lpString2 As String) As Long
     
    Private Type BrowseInfo
        hWndOwner As Long
        pIDLRoot As Long
        pszDisplayName As Long
        lpszTitle As Long
         ulFlags As Long
        lpfnCallback As Long
        lParam As Long
        iImage As Long
    End Type
     
    Declare Function FlashWindow Lib "user32" (ByVal hWnd As Long, ByVal bInvert As Long) As Long
     
     
    Public Function SelectFolder(Titre As String, Handle As Long) As String
     
    Dim lpIDList As Long
    Dim strBuffer As String
    Dim strTitre As String
    Dim tBrowseInfo As BrowseInfo
     
    strTitre = Titre
    With tBrowseInfo
        .hWndOwner = Handle
        .lpszTitle = lstrcat(strTitre, "")
        .ulFlags = BIF_RETURNONLYFSDIRS + BIF_DONTGOBELOWDOMAIN
    End With
     
    lpIDList = SHBrowseForFolder(tBrowseInfo)
     
    If (lpIDList) Then
        strBuffer = String(260, vbNullChar)
        SHGetPathFromIDList lpIDList, strBuffer
        SelectFolder = Left(strBuffer, InStr(strBuffer, vbNullChar) - 1)
    End If
     
    End Function
    --------------------------------------------------------------------------

    Alors, quand je click sur mon bouton, le programme s'arrête sur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub CmdBrowseJobDirectory_Click()
        'Récupération du chemin de travail
               MsgBox SelectFolder("Sélectionnez un répertoire :", Me.hWnd)
    --------------------------------------------------------------------
    je ne sais pas pourquoi?

    Pleins de sites me propose ce type de code et il semble ne rien manqué.
    Si ce n'est qu'il faudra que je mette tous ça dans une variable strPathJob.

    Enfin, si vous pouvez m'aider, j'en serais très heureux

    Bien à vous.
    Cordialement,
    Patrick

  2. #2
    Expert éminent
    Avatar de ThierryAIM
    Homme Profil pro
    Inscrit en
    Septembre 2002
    Messages
    3 673
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2002
    Messages : 3 673
    Points : 8 524
    Points
    8 524
    Par défaut
    Me.hWnd est le handle de la form appelant la fonction

    essaie avec 0 à la place, comme en VBA

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    strPathJob = SelectFolder("Sélectionnez un répertoire :", 0)

  3. #3
    Membre régulier Avatar de Paloma
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    228
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 228
    Points : 79
    Points
    79
    Par défaut Merci chef !!!!
    super Merci ça marche.

    Trop chouette !!!!

    Maintenant il faut que je récupère le chemin dans la variable strPathJob.

    Puis-je vous demander ce que je dois faire pour initialiser ma variable (quoi récupérer)?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub CmdBrowseJobDirectory_Click()
        'Récupération du chemin de Travail
               MsgBox SelectFolder("Sélectionnez un répertoire :", 0)
        strPathJob = ******
    J'avoue que je n'ai pas tout compris dans la fonction SelectFolder ... mais ça va venir, je ne baisse pas les bras.

    .... ps, je cherche en même temps, si vous pensez que je suis trop long et que je n'ai pas posté :"ça y est j'ai trouvé !!!" dans ce forum, pouvez-vous me souffler la solution.


    Cordialement,
    Patrick

  4. #4
    Expert éminent
    Avatar de ThierryAIM
    Homme Profil pro
    Inscrit en
    Septembre 2002
    Messages
    3 673
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2002
    Messages : 3 673
    Points : 8 524
    Points
    8 524
    Par défaut
    tu n'as lu que la moitié de ma réponse
    Je t'ai mis le code pour récupere le chemin dans strPathJob

    la fonction SelectFolder renvoie une string correspondant au chemin sélectionné ou une string vide si on clique sur Annuler

  5. #5
    Membre régulier Avatar de Paloma
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    228
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 228
    Points : 79
    Points
    79
    Par défaut Arf, trop fort !!!!!
    La chuis collé, maintenant je comprends mieux.

    J'avais poas les yeux en face des trous

    Non mais là chuis trop content.

    Merci beaucoup à toi ThierryAIM!

    Je vais pouvoir essayer de faire la copie de mes fichier qui sont dans ce répertoire sous strPathJob\IN vers strPathTemp\IN (répertoire local c:\temp\IN)

    @ bientôt.
    Cordialement,
    Patrick

    alias paloma : Patrick, Lola et Magali

  6. #6
    Expert éminent
    Avatar de ThierryAIM
    Homme Profil pro
    Inscrit en
    Septembre 2002
    Messages
    3 673
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2002
    Messages : 3 673
    Points : 8 524
    Points
    8 524
    Par défaut
    Si, la prochaine fois, tu as les yeux en face des trous, penses à cliquer sur
    Cette fois-ci, je l'ai fait pour toi

    bonne prog

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

Discussions similaires

  1. ouvrir un ficher sans connaître son chemin complet
    Par laurent_m dans le forum Documents
    Réponses: 1
    Dernier message: 13/08/2009, 05h32
  2. [Toutes versions] Macro : Taille répertoire à partir de son chemin
    Par ccensam dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 25/07/2009, 11h46
  3. Réponses: 3
    Dernier message: 27/11/2007, 08h40
  4. Extraire le nom du fichier de son chemin complet
    Par Tenguryu dans le forum C++Builder
    Réponses: 3
    Dernier message: 06/04/2006, 21h10
  5. Répertoire local ou chemin complet
    Par Yepazix dans le forum Langage
    Réponses: 7
    Dernier message: 28/09/2005, 09h54

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