Page 1 sur 1

Selection d'un répertoire

MessagePublié: 11 Mai 2007 à 19:40
par Michael DELIQUE
Code : Tout sélectionner
Function DirectorySearch_API(sSearch As String) As String
   
%REM
'Variables API pour la fonction
Const MAX_PATH = 260
Const INVALID_HANDLE_VALUE = -1

Type FILETIME
   dwLowDateTime As Long
   dwHighDateTime As Long
End Type
Type WIN32_FIND_DATA
   dwFileAttributes As Long
   ftCreationTime As FILETIME
   ftLastAccessTime As FILETIME
   ftLastWriteTime As FILETIME
   nFileSizeHigh As Long
   nFileSizeLow As Long
   dwReserved0 As Long
   dwReserved1 As Long
   cFileName As String * MAX_PATH
   cAlternate As String * 14
End Type

Declare Function FindFirstFile Lib "kernel32" Alias "FindFirstFileA" ( Byval lpFileName As String, lpFindFileData As WIN32_FIND_DATA) As Long
Declare Function FindNextFile Lib "kernel32" Alias "FindNextFileA" ( Byval hFindFile As Long, lpFindFileData As WIN32_FIND_DATA) As Long
%END REM
   
   'Déclaration Variables
   Dim nbiNum As Long
   Dim i As Long
   Dim nbiDeb As Long
   Dim nbhFile As Long
   Dim tFindFile As WIN32_FIND_DATA
   Dim bTrouve As Variant
   Dim tmpSearch As String
   Dim nbpos As Integer
   
   On Error Goto erreurDirectorySearch_API
   
   sSearch = sSearch & ":"
   
   nbhFile = findfirstfile(sSearch + "\*.*", tFindFile)
   bTrouve = nbhFile <> INVALID_HANDLE_VALUE
   Do While bTrouve
      If tFindFile.dwFileAttributes = 16 Or tFindFile.dwFileAttributes = 17 Then
         If Left$(tFindFile.cFileName, 1) <> "." Then
            nbpos = Instr(tfindfile.cfilename, Chr$(0))
            tmpSearch = Left$(tfindfile.cfilename, nbpos - 1)
            DirectorySearch_API = sSearch & "\" & tmpSearch
            Exit Do
         End If
      End If
      nbiNum = nbiNum + 1
      bTrouve = FindNextFile(nbhFile, tFindFile)
   Loop
   
   Exit Function
ErreurDirectorySearch_API:
   Msgbox "("+Cstr(Getthreadinfo (1))+" Call by "+Cstr(Getthreadinfo(10))+")"+Chr(10)+"Erreur " + Str(Err) + " : "+Chr(10) + Cstr(Error)+". "+Chr(10)+"Ligne N° "+Cstr(Erl),16," ERREUR !"
DirectorySearch_API = ""
   Exit Function
End Function