Obtient le fichier suivant dans une recherche de fichier ou de répertoire
#include <WinAPIFiles.au3>
_WinAPI_FindNextFile ( $hSearch, $tData )
$hSearch | Le handle de recherche retourné par un appel précédent à la fonction _WinAPI_FindFirstFile(). |
$tData | Une structure $tagWIN32_FIND_DATA, ou un pointeur sur une telle structure, qui reçoit des informations sur un fichier ou un répertoire trouvé. |
Succès: | Retourne True. |
Échec: | Retourne False et définit @error <> 0, @extended peut contenir le code d'erreur du système. |
L'ordre dans lequel la recherche retourne les fichiers, tel que l'ordre alphabétique, n'est pas garantie.
Si les données doivent être triées, l'application doit ordonner les données après l'obtention des résultats.
Si la fonction échoue car aucun fichier ne correspond plus au critère, @extended contiendra le code d'erreur du système ERROR_NO_MORE_FILES (18).
Consultez FindNextFile dans la librairie MSDN.
#include <Array.au3> #include <MsgBoxConstants.au3> #include <WinAPIConv.au3> #include <WinAPIError.au3> #include <WinAPIFiles.au3> Local $aList[101][2] = [[0]] Local $tData = DllStructCreate($tagWIN32_FIND_DATA) Local $sFile Local $hSearch = _WinAPI_FindFirstFile(@ScriptDir & '\*', $tData) While Not @error $sFile = DllStructGetData($tData, 'cFileName') Switch $sFile Case '.', '..' Case Else If Not BitAND(DllStructGetData($tData, 'dwFileAttributes'), $FILE_ATTRIBUTE_DIRECTORY) Then $aList[0][0] += 1 If $aList[0][0] > UBound($aList) - 1 Then ReDim $aList[UBound($aList) + 100][2] EndIf $aList[$aList[0][0]][0] = $sFile $aList[$aList[0][0]][1] = _WinAPI_MakeQWord(DllStructGetData($tData, 'nFileSizeLow'), DllStructGetData($tData, 'nFileSizeHigh')) EndIf EndSwitch _WinAPI_FindNextFile($hSearch, $pData) WEnd Switch @extended Case 18 ; ERROR_NO_MORE_FILES Case Else MsgBox(BitOR($MB_ICONERROR, $MB_SYSTEMMODAL), @extended, _WinAPI_GetErrorMessage(@extended)) Exit EndSwitch _WinAPI_FindClose($hSearch) _ArrayDisplay($aList, '_WinAPI_Find...', $aList[0][0])