Gestion des répertoires

Gestion des répertoires

Messagepar Michael DELIQUE » 06 Nov 2007 à 08:57

Code : Tout sélectionner
Public Function DirectoryCreate_API(wDirectory As String) As Long
   
   ' Créer un nouveau répertoire
   
%REM
'variable API pour la fonction DirectoryCreate_API
Declare Function CreateDirectory Lib "kernel32" Alias "CreateDirectoryA" ( Byval lpPathName As String,lpSecurityAttributes As Long) As Long
%END REM
   
   On Error Goto ErreurDirectoryCreate_API
   
   If Trim(wDirectory) = "" Then   
      DirectoryCreate_API = 0
   End If   
   
   DirectoryCreate_API = CreateDirectory (wDirectory, Byval &H0)
   
   Exit Function
ErreurDirectoryCreate_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 !"

   DirectoryCreate_API = 0      
   Exit Function
End Function


Code : Tout sélectionner
Public Function DirectoryDelete_API(wDirectory  As String,wForce As Integer) As Long
   
      ' Suppression d'un Repertoire
   
%REM
'variableAPI pour la fonction DirectoryDelete_API
'Declare Function SHFileOperation Lib "shell32" Alias "SHFileOperationA" ( lpFileOp As SHFILEOPSTRUCT) As Long
'Public Type SHFILEOPSTRUCT
'   hWnd As Long
'   wFunc As Long
'   pForm As String
'   pTo As String
'   fFlags As Integer
'   fAborted As Variant
'   hNameMaps As Long
'   sProgress As String
'End Type
'Const FO_DELETE = &H3
Const FOF_NOCONFIRMATION = &H10
%END REM
   
   'Daclaration Variable
   Dim SHDirOp As SHFILEOPSTRUCT
   Const FOF_NOCONFIRMATION = &H10
   Const FO_DELETE = &H3
   
   On Error Goto ErreurDirectoryDelete_API
   
   If Trim(wDirectory)   = "" Then
      DirectoryDelete_API = 0
      Exit Function
   Elseif isValideDirectory(wDirectory) = False Then
      DirectoryDelete_API = 0
      Exit Function
   End If
   
   SHDirOp.wFunc = FO_DELETE
   If wForce = True Then
      'pas de message de confirmation
      SHDirOp.fFlags = FOF_NOCONFIRMATION
   End If
   SHDirOp.pForm = wDirectory
   SHFileOperation SHDirOp
   
   Exit Function
ErreurDirectoryDelete_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 !"
   DirectoryDelete_API = 0
   Exit Function
End Function


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
Cordialement

Michael (SMS-Phobique)
----------------------------
"La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi."
Albert EINSTEIN
Avatar de l’utilisateur
Michael DELIQUE
Administrateur
Administrateur
 
Message(s) : 12183
Inscrit(e) le : 16 Déc 2004 à 10:36
Localisation : Paris/Cergy

Retour vers API