Hit-Parade .VB Research Center . Compteur
Accueil ~  Code ~  Programmes ~  Api ~  Forum ~  Cours ~  Livres ~  Quiz ~  Annuaire
~ Edito ~
12/03/2006 @ 13:39
Depuis la dernière mise à jour (qui remonte à... oulala plusieurs mois), un petit ménage de printemps s'impose. Ca tombe bien, c'est presque la période.
Au menu, et progressivement sur les jours à venir, rafraîchissement de plusieurs fonctions et procédures, nouvelles APIs et nouveaux programmes.

~ Rechercher ~

  

~ Annuaire VB ~
 Rechercher un site :
  

~ Partenaires ~

Fonction CreateDirectory

Declare Function CreateDirectory Lib "kernel32" Alias "CreateDirectoryA" ( _
                 
ByVal lpPathName As String, _
                 lpSecurityAttributes As SECURITY_ATTRIBUTES) As Long
Versions :
. Windows 95/98 : Oui
. Windows NT : A partir de 3.1
. Windows 2000/XP : Oui

Description :
Cette fonction sert à créer un répertoire.
lpPathName est le chemin complet du répertoire à créer.
lpSecurityAttributes est une structure qui renseigne les informations de sécurité du nouveau répertoire (voir détail ci-dessous). Cela n'est pas nécessaire sous Win9x (valeur Null).
Sous NT ou Win2000, une valeur Null donne les attributs de sécurité par défaut au répertoire.
La valeur Vrai est retournée par la fonction si la création a eu lieu, sinon False.

Type SECURITY_ATTRIBUTES
    nLength As Long
    lpSecurityDescriptor As Long
    bInheritHandle As Long
End Type


Exemple d'utilisation :

' Déclaration des fonctions API utilisées.
Private Declare Function CreateDirectory Lib "kernel32" Alias "CreateDirectoryA" ( _
               
ByVal lpPathName As String, lpSecurityAttributes As SECURITY_ATTRIBUTES) As Long
Private Declare Function
SetCurrentDirectory Lib "kernel32" Alias "SetCurrentDirectoryA" ( _
               
ByVal lpPathName As String) As Long
Private Declare Function
GetCurrentDirectory Lib "kernel32" Alias "GetCurrentDirectoryA" ( _
               
ByVal nBufferLength As Long, ByVal lpBuffer As String) As Long

' Déclaration du type utilisé.
Private Type SECURITY_ATTRIBUTES
    nLength
As Long
   
lpSecurityDescriptor As Long
   
bInheritHandle As Long
End Type

Public Sub
PrepareRep(stRep As String)
' Cette procédure permet de créer le chemin complet donné en paramètre.
Dim lgDepRep As Long, stDepRep As String
Dim
lgWhile As Long
' Type Sécurité de la base de registres.
Dim lpAttr As SECURITY_ATTRIBUTES

lgDepRep = 512
stDepRep = Space$(511)
' Mémorise le répertoire courant.
lgWhile = GetCurrentDirectory(lgDepRep, stDepRep)
stDepRep = Left$(stDepRep, lgWhile)

' Affecte les valeurs par défaut des attributs de sécurité.
lpAttr.nLength = 50
lpAttr.lpSecurityDescriptor = 0
lpAttr.bInheritHandle =
True

' Initialise la fin de la chaîne.
If Right$(stRep, 1) <> "\" Then stRep = stRep & "\"
' Repère le départ du premier répertoire.
lgWhile = InStr(4, stRep, "\")
Do While (lgWhile > 0)
   
' Vérifie l'existence du répertoire en se positionnant à l'intérieur.
   
lgDepRep = SetCurrentDirectory(Left$(stRep, lgWhile))
   
If lgDepRep = 0 Then
       
' Crée le répertoire.
       
CreateDirectory Left$(stRep, lgWhile), lpAttr
   
End If
   
lgWhile = InStr(lgWhile + 1, stRep, "\")
Loop
' Retourne sur le répertoire courant d'origine.
SetCurrentDirectory stDepRep
End Sub

Retour à la liste des API

Visual Basic Research Center - (c) 2000/2002 -  Webmaster : docvb (chez) free (point) fr