vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Mails senden, abrufen und decodieren - ganz easy ;-)  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   RSS-Feeds  | Newsletter  | Impressum  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2014
 
zurück
Rubrik: Dateisystem22.03.05
CreateDirectoryEx-Funktion

Diese Funktion erstellt ein Verzeichnis in das noch die Attribute eines bereits existierenden Verzeichnisses übernommen werden können.

Betriebssystem:  Win95, Win98, WinNT 4.0, Win2000, WinMEViews:  3.101 

Deklaration:

Declare Function CreateDirectoryEx Lib "kernel32.dll" _
  Alias "CreateDirectoryExA" ( _
  ByVal lpTemplateDirectory As String, _
  ByVal lpNewDirectory As String, _
  lpSecurityAttributes As SECURITY_ATTRIBUTES) As Long

Beschreibung:
Diese Funktion erstellt ein Verzeichnis in das noch die Attribute eines bereitsexistierenden Verzeichnisses übernommen werden können.

Parameter:
lpTemplateDirectoryErwartet den Pfadnamen desexistierenden Verzeichnisses, dessen Attribute übernommen werden sollen.
lpNewDirectoryErwartet den existierenden Pfadnamen, in dem das Verzeichnis erstellt werden soll und den Verzeichnisnamen, der erstellt werden soll als kompletten Pfad.
lpSecurityAttributesErwartet unter Windows NT/2000 eine SECURITY_ATTRIBUTES-Struktur, die mit Informationen über die Sicherheitseinstellungen gefüllt ist, die benutzt werden sollen. Unter den anderen Betriebssystemen wird diese Strukturignoriert.

Rückgabewert:
Ist die Funktion erfolgreich, so liefert sie einen Wert "ungleich 0", andernfalls wird derWert "0" zurückgegeben. Für erweiterte Fehlerinformationen rufen Sie die GetLastError-Funktion auf.

Beispiel:

Private Declare Function CreateDirectory Lib "kernel32.dll" _
  Alias "CreateDirectoryA" ( _
  ByVal lpPathName As String, _
  lpSecurityAttributes As SECURITY_ATTRIBUTES) As Long
Private Declare Function CreateDirectoryEx Lib "kernel32.dll" _
  Alias "CreateDirectoryExA" ( _
  ByVal lpTemplateDirectory As String, _
  ByVal lpNewDirectory As String, _
  lpSecurityAttributes As SECURITY_ATTRIBUTES) As Long 
Private Declare Function RemoveDirectory Lib "kernel32.dll" _
  Alias "RemoveDirectoryA" ( _
  ByVal lpPathName As String) As Long
Private Declare Function SetFileAttributes Lib "kernel32.dll" _
  Alias "SetFileAttributesA" ( _
  ByVal lpFileName As String, _
  ByVal dwFileAttributes As Long) As Long
 
' SetFileAttributes dwFileAttributes-Konstanten
Private Const FILE_ATTRIBUTE_ARCHIVE = &H20 ' Attribut Archiv
Private Const FILE_ATTRIBUTE_HIDDEN = &H2 ' Attribut Versteckt
Private Const FILE_ATTRIBUTE_NORMAL = &H80 ' Attribut Normal, kann mit keinem anderen kombiniert werden
Private Const FILE_ATTRIBUTE_READONLY = &H1 ' Attribut Schreibgeschützt
Private Const FILE_ATTRIBUTE_SYSTEM = &H4 ' Attribut Systemdatei / -ordner
 
Private Type SECURITY_ATTRIBUTES
  nLength As Long
  lpSecurityDescriptor As Long
  bInheritHandle As Boolean
End Type
' Ein verstecktes Verzeichnis erstellen und ein zweites, das diese Attribute übernimmt
Private Sub Command1_Click()
  Dim Retval As Long, SA As SECURITY_ATTRIBUTES
 
  ' Sicherheitseinstellungen vornehmen
  With SA
    .nLength = Len(SA)
    .lpSecurityDescriptor = 0
    .bInheritHandle = 1' Standardhandle ist 1
  End With
 
  ' Ein Verzeichnis erstellen und die Attribute setzen
  Retval = CreateDirectory("C:\Windows\Desktop\TempPath", SA)
  If Retval << 0 Then
    MsgBox "Das Verzeichniss ""C:\Windows\Desktop\TempPath"" wurde  _
    erfolgreich erstellt."
    Retval = SetFileAttributes("C:\Windows\Desktop\TempPath",  _
    FILE_ATTRIBUTE_HIDDEN Or FILE_ATTRIBUTE_ARCHIVE)
    If Retval << 0 Then
      MsgBox "Die Attribute des Verzeichnisses  _
      ""C:\Windows\Desktop\TempPath"" wurden erfolgreich gesetzt"
    End If
  End If
 
  ' Ein zweites Verzeichnis erstellen mit den Attributen des Ersten
  Retval = CreateDirectoryEx("C:\Windows\Desktop\TempPath",  _
  "C:\Windows\Desktop\TempPath2", SA)
  If Retval << 0 Then
    MsgBox "Das Verzeichnis ""C:\Windows\Desktop\TempPath2"" wurde  _
    erfolgreich erstellt."
  End If
 
  ' Verzeichnisse wieder löschen
  Retval = MsgBox("Klicken sie auf OK um die Verzeichnisse wieder zu  _
  Löschen", vbOKCancel, "Löschen")
  If Retval = vbOK Then
    RemoveDirectory "C:\Windows\Desktop\TempPath"
    RemoveDirectory "C:\Windows\Desktop\TempPath2"
  End If
End Sub

Diese Seite wurde bereits 3.101 mal aufgerufen.

nach obenzurück
 
   

Druckansicht Druckansicht Copyright ©2000-2014 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.

Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel