UDF > WinAPIEx > Files & Devices > Files >


_WinAPI_FindFirstFileName

Crée une énumération de tous les liens en dur vers le fichier spécifié

#include <WinAPIFiles.au3>
_WinAPI_FindFirstFileName ( $sFilePath, ByRef $sLink )

Paramètres

$sFilePath Le nom du fichier.
$sLink Retourne le nom du premier lien trouvé pour le fichier spécifié.

Valeur de retour

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

Remarques

Après que le handle de recherche ait été obtenu, vous pouvez l'utiliser dans la fonction _WinAPI_FindNextFileName() pour rechercher d'autres liens en dur vers le fichier spécifié.

Lorsque le handle de la recherche n'est plus nécessaire, il doit être fermé à l'aide de la fonction _WinAPI_FindClose().

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

En relation

_WinAPI_FindClose, _WinAPI_FindNextFileName

Voir aussi

Consultez FindFirstFileNameW 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)