vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#

https://www.vbarchiv.net
Rubrik: Dateisystem13.07.01
FindFirstFile-Funktion

Diese Funktion such nach der ersten Datei oder Ordner innerhalb eines angegebenen Verzeichnisses und gibt ein Dateihandle zurück.

Betriebssystem:  Win95, Win98, WinNT 3.1, Win2000, WinMEViews:  28.853 

Deklaration:

Declare Function FindFirstFile Lib "kernel32.dll" _
  Alias "FindFirstFileA" ( _
  ByVal lpFileName As String, _
  lpFindFileData As WIN32_FIND_DATA) As Long

Beschreibung:
Diese Funktion such nach der ersten Datei oder Ordner innerhalb eines angegebenen Verzeichnisses. Die Funktion gibt einen Handle zurück, mit dem man mittels der FindNextFile-Funktion nach weitere n Dateien und Ordner suchen kann. Die FindClose- Funktion gibt die Ressourcen und den Handle wieder frei.

Parameter:
lpFileNameErwartet den Verzeichnisnamen, in welchem die Suche begonnen werden soll. Wildcards wie "?, *., .*, *.*" sind erlaubt.
lpFindFileDataErwartet eine WIN32_FIND_DATA-Struktur, in der die Informationen der gefundenen Datei gespeichert werden.

Rückgabewert:
Konnte eine Datei gefunden werden, wird entspricht der Rückgabewert dem Dateihandle der Datei, andernfalls wird "INVALID_HANDLE_VALUE" zurückgegeben.


Beispiel:

Private Declare Function FindFirstFile Lib "kernel32" Alias "FindFirstFileA" 
  (ByVal lpFileName As String, lpFindFileData As WIN32_FIND_DATA) As Long
Private Declare Function FindNextFile Lib "kernel32" _
  Alias "FindNextFileA" ( _
  ByVal hFindFile As Long, _
  lpFindFileData As WIN32_FIND_DATA) As Long
Private Declare Function FindClose Lib "kernel32" (ByVal hFindFile As Long) As Long
 
Private Const MAX_PATH = 260
Private Const INVALID_HANDLE_VALUE = -1
 
Private Type FILETIME
  dwLowDateTime As Long
  dwHighDateTime As Long
End Type
 
Private 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
' Nach allen Dateien und Ordnern inerhalb eines Verzeichnisses suchen
Private Sub Command1_Click()
  Dim Found As WIN32_FIND_DATA, Retval As Long, hFile As Long
 
  ' Suchen nach der ersten Datei
  hFile = FindFirstFile("c:\windows\*.*", Found)
 
  ' Wenn keine Datei vorhanden, Vorgang abbrechen
  If hFile = INVALID_HANDLE_VALUE Then
    MsgBox "Dieses Verzeichnis enthält keine Dateien oder Ordner",  _
      vbInformation, "Suche Abbrechen"
    Exit Sub
  End If
 
  Do
    Select Case CBool(Found.dwFileAttributes And vbDirectory)
      Case True ' Ordner
        Debug.Print "Ordner gefunden: " & Left$(Found.cFileName, InStr(1,  _
          Found.cFileName, vbNullChar) - 1)
      Case False ' Datei
        Debug.Print "Datei gefunden: " & Left$(Found.cFileName, InStr(1,  _
          Found.cFileName, vbNullChar) - 1)
    End Select
 
    ' Nach der nächsten Datei suchen
    Retval = FindNextFile(hFile, Found)
    DoEvents
  Loop Until Retval = 0
  FindClose hFile
End Sub

 
 
Copyright ©2000-2024 vb@rchiv Dieter OtterAlle 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.