UDF > WinAPIEx > Files & Devices > Files >


_WinAPI_FindNextFileName

Obtient le lien suivant dans une énumération de liens en dur

#include <WinAPIFiles.au3>
_WinAPI_FindNextFileName ( $hSearch, ByRef $sLink )

Paramètres

$hSearch Le handle de l'énumération qui est retourné par un appel réussi à la fonction _WinAPI_FindFirstFileName().
$sLink Retourne le nom du lien suivant qui a été trouvé.

Valeur de retour

Succès: Retourne True.
Échec: Retourne False et définit @error <> 0, @extended peut contenir le code d'erreur du système.

Remarques

Si la fonction échoue, car plus aucun des liens ne correspond au critère de recherche, @extended contiendra le code d'erreur système ERROR_HANDLE_EOF(38).

Cette fonction nécessite Windows Vista ou une version ultérieure.

En relation

_WinAPI_FindFirstFileName

Voir aussi

Consultez FindNextFileNameW dans la librairie MSDN.

Exemple

#include <MsgBoxConstants.au3>
#include <WinAPIError.au3>
#include <WinAPIFiles.au3>
#include <WinAPIShPath.au3>

Local $sFile = @DesktopDir & '\@' & StringRegExpReplace(_WinAPI_PathFindFileName(@ScriptName), '\A_+', '')

; Crée un lien en dur vers le fichier courant avec le préfixe "@" sur votre bureau
If Not _WinAPI_CreateHardLink($sFile, @ScriptFullPath) Then
    MsgBox(BitOR($MB_ICONERROR, $MB_SYSTEMMODAL), 'Erreur', 'Impossible de créer un lien en dur.')
    Exit
EndIf

; Énumére tous les liens en dur vers le fichier

Local $sLink
Local $hSearch = _WinAPI_FindFirstFileName($sFile, $sLink)
While Not @error
    ConsoleWrite( _WinAPI_PathAppend(_WinAPI_PathStripToRoot($sFile), $sLink) & @CRLF)
    _WinAPI_FindNextFileName($hSearch, $sLink)
WEnd

Switch @extended
    Case 38 ; ERROR_HANDLE_EOF

    Case Else
        MsgBox(BitOR($MB_ICONERROR, $MB_SYSTEMMODAL), @extended, _WinAPI_GetErrorMessage(@extended))
EndSwitch

FileDelete($sFile)