Nom de dossier

Résolu
cs_veler Messages postés 723 Date d'inscription dimanche 26 novembre 2006 Statut Membre Dernière intervention 23 janvier 2013 - 7 déc. 2006 à 18:59
cs_veler Messages postés 723 Date d'inscription dimanche 26 novembre 2006 Statut Membre Dernière intervention 23 janvier 2013 - 8 déc. 2006 à 18:44
Bonjour tous le monde, voila, je cherche à savoir comment on peu faire connaître le nom d'un dossier dont on sais où il est mais que l'on ne connais donc pas son nom.
Jusque la, tous ce que j'ai trouvé était de l'analyse du contenu d'un dossier.
Merci d'avance
Bye

ebaudoux@club.fr
http://jbaudoux.club.fr/veler/

25 réponses

cavo789 Messages postés 168 Date d'inscription vendredi 9 janvier 2004 Statut Membre Dernière intervention 28 juillet 2009 1
8 déc. 2006 à 13:11
Il existe une API de Windows permettant de retrouver le chemin d'accès d'un folder système comme le folder Application data de l'utilisateur connecté.

Ci-dessous le code

Public Enum SpecialFoldersConstants
   CSIDL_ADMINTOOLS = &H30
   CSIDL_ALTSTARTUP = &H1D
   CSIDL_APPDATA = &H1A
   CSIDL_BITBUCKET = &HA
   CSIDL_COMMON_ADMINTOOLS = &H2F
   CSIDL_COMMON_ALTSTARTUP = &H1E
   CSIDL_COMMON_APPDATA = &H23
   CSIDL_COMMON_DESKTOPDIRECTORY = &H19
   CSIDL_COMMON_DOCUMENTS = &H2E
   CSIDL_COMMON_FAVORITES = &H1F
   CSIDL_COMMON_PROGRAMS = &H17
   CSIDL_COMMON_STARTMENU = &H16
   CSIDL_COMMON_STARTUP = &H18
   CSIDL_COMMON_TEMPLATES = &H2D
   CSIDL_CONTROLS = &H3
   CSIDL_COOKIES = &H21
   CSIDL_DESKTOP = &H0
   CSIDL_DESKTOPDIRECTORY = &H10
   CSIDL_DRIVES = &H11
   CSIDL_FAVORITES = &H6
   CSIDL_FLAG_CREATE = &H8000
   CSIDL_FLAG_DONT_VERIFY = &H4000
   CSIDL_FLAG_MASK = &HFF00
   CSIDL_FONTS = &H14
   CSIDL_HISTORY = &H22
   CSIDL_INTERNET = &H1
   CSIDL_INTERNET_CACHE = &H20
   CSIDL_LOCAL_APPDATA = &H1C
   CSIDL_MYPICTURES = &H27
   CSIDL_NETHOOD = &H13
   CSIDL_NETWORK = &H12
   CSIDL_PERSONAL = &H5
   CSIDL_PRINTERS = &H4
   CSIDL_PRINTHOOD = &H1B
   CSIDL_PROFILE = &H28
   CSIDL_PROGRAM_FILES = &H26
   CSIDL_PROGRAM_FILES_COMMON = &H2B
   CSIDL_PROGRAM_FILES_COMMONX86 = &H2C
   CSIDL_PROGRAM_FILESX86 = &H2A
   CSIDL_PROGRAMS = &H2
   CSIDL_RECENT = &H8
   CSIDL_SENDTO = &H9
   CSIDL_STARTMENU = &HB
   CSIDL_STARTUP = &H7
   CSIDL_SYSTEM = &H25
   CSIDL_SYSTEMX86 = &H29
   CSIDL_TEMPLATES = &H15
   CSIDL_WINDOWS = &H24
End Enum

Public Declare Function apiSHGetSpecialFolderLocation Lib "shell32" Alias "SHGetSpecialFolderLocation" _
    (ByVal hwndOwner As Long, ByVal nFolder As Long, ppidl As Long) As Long
Public Declare Function apiSHGetPathFromIDList Lib "shell32" Alias "SHGetPathFromIDList" _
    (pidl As Long, ByVal pszPath As String) As Long

Public Function ZGetSpecialFolder(ByVal SpecialFolder As SpecialFoldersConstants) As String


'   Returns path to a special folder on the machine without a trailing backslash.
'
'   Refer to the comments in declarations for OS and IE dependent CSIDL values.


Dim wReturn As Long
Dim sFolder As String
Dim pidl As Long


   wReturn = apiSHGetSpecialFolderLocation(0&, SpecialFolder, pidl)
   
   If wReturn = 0 Then
   
      sFolder = Space$(MAX_PATH)
      wReturn = apiSHGetPathFromIDList(ByVal pidl, sFolder)
       
      If Not wReturn = 0 Then
     
         sFolder = ZTrimNull(sFolder)
         If Right(sFolder, 1) <> "" Then sFolder = sFolder & ""
        
      End If
       
      Call sapiCoTaskMemFree(pidl)
     
    End If
   
    ZGetSpecialFolder = sFolder 'left$(strLocation, InStr(strLocation, vbNullChar) - 1) & ""
   
End Function

Christophe
0
cs_veler Messages postés 723 Date d'inscription dimanche 26 novembre 2006 Statut Membre Dernière intervention 23 janvier 2013 2
8 déc. 2006 à 17:09
Salut, ton après avoir lut et relut ton script, j'ai bien compris ce que sa doit faire sauf qu'il y a des erreurs que je n'arrive pas à enlever, voici le script (je met en rouge les endroit ou il y a les erreurs):

        If wReturn = 0 Then

            sFolder = Space$(MAX_PATH)
      wReturn = apiSHGetPathFromIDList(ByVal pidl, sFolder)

            If Not wReturn = 0 Then

                sFolder =ZTrimNull(sFolder)
                IfRight(sFolder, 1) <> "" Then sFolder = sFolder & ""

            End If

            CallsapiCoTaskMemFree(pidl)

        End If

Je ne sais pas trop à quoi tous cela sert, mais mon vb 2005 Express n'aime pas.
Bye

ebaudoux@club.fr
http://jbaudoux.club.fr/veler/
0
cs_veler Messages postés 723 Date d'inscription dimanche 26 novembre 2006 Statut Membre Dernière intervention 23 janvier 2013 2
8 déc. 2006 à 17:46
Salut, merci, la prochaine fois, je préciserai plus taux.
Euuuuuh, il y a le "System." qui est incorrect, euuuuuuh, si ta la soluce (pendant que j'essais de mon coté)
Bye

ebaudoux@club.fr
http://jbaudoux.club.fr/veler/
0
Utilisateur anonyme
8 déc. 2006 à 17:57
Non, c'est moi qui n'est pas vfait attention pour le vb2005. Tu a mis dans la bonne cathègorie.
Pour ton problème, je pense qu'un "Imports System" est nessesaire. Et de bien ajouter la référence à ton projet.





__________
Kenji
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_veler Messages postés 723 Date d'inscription dimanche 26 novembre 2006 Statut Membre Dernière intervention 23 janvier 2013 2
8 déc. 2006 à 18:44
Salut, C'est bon, j'ai compris l'erreur, c'étair juste que tu avais déclaré une variable qui s'appellait "TempPath" et qu'à la ligne du dessous, tu parlais de la variable nommé "CookiesPath". C'est juste une erreur d'étourderie, c'est pas grave, merci, mon problème est règlé.
Merci à tous

ebaudoux@club.fr
http://jbaudoux.club.fr/veler/
0
Rejoignez-nous