Rubrik: Dateisystem | 13.07.01 |
FindNextFile-Funktion Diese Funktion sucht nach weiteren Vorkommen einer Datei und kann erst nach dem Aufruf der FindFirtsFile-Funktion aufgerufen werden. | ||
Betriebssystem: Win95, Win98, WinNT 3.1, Win2000, WinME | Views: 14.626 |
Deklaration:
Declare Function FindNextFile Lib "kernel32.dll" _ Alias "FindNextFileA" ( _ ByVal hFindFile As Long, _ lpFindFileData As WIN32_FIND_DATA) As Long
Beschreibung:
Diese Funktion sucht nach weiteren Vorkommen einer Datei und kann erst nach dem Aufruf der FindFirtsFile-Funktion aufgerufen werden. Nach dem Beenden des Suchvorgangs müssen Sie die Ressourcen mittels der FindClose-Funktion wieder freigeben!
Parameter:
hFindFile | Erwartet den Dateihandle der FindFirstFile-Funktion. |
lpFindFileData | Erwartet eine WIN32_FIND_DATA-Struktur, die mit den Dateiinformationen gefundenen Datei gefüllt wird. |
Rückgabewert:
Konnte eine weitere Datei gefunden werden, gibt die Funktion den Wert "1" zurück. Wurde keine weitere Datei mehr gefunden, so ist der Rückgabewert "0".
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