UDF > WinAPIEx > Files & Devices > Files >


_WinAPI_CreateHardLink

Établit un lien en dur entre un fichier existant et un nouveau fichier

#include <WinAPIFiles.au3>
_WinAPI_CreateHardLink ( $sNewFile, $sExistingFile )

Paramètres

$sNewFile Le nom du nouveau fichier.
$sExistingFile Le nom du fichier existant.

Valeur de retour

Succès: Retourne True.
Échec: Retourne False, appelez _WinAPI_GetLastError() pour obtenir des informations sur l'erreur

Remarques

_WinAPI_CreateHardLink() est supportée uniquement sur ​​le système de fichiers NTFS, et seulement pour les fichiers, pas les répertoires.

Le descripteur de sécurité appartient au fichier vers lequel pointe le lien. Le lien lui-même est seulement une entrée de répertoire, et n'a pas de descripteur de sécurité.
Par conséquent, lorsque vous modifiez le descripteur de sécurité d'un lien en dur, vous changez le descripteur de sécurité du fichier sous-jacent, et tous les hard link qui pointent vers le fichier permettent l'accès nouvellement spécifié.
Vous ne pouvez pas donner un descripteur de sécurité de fichier différent sur une base per-hard-link.

Utilisez la fonction _WinAPI_DeleteFile() pour supprimer des liens en dur. Vous pouvez les supprimer dans n'importe quel ordre indépendamment de l'ordre dans lequel ils sont créés.

En relation

_WinAPI_DeleteFile

Voir aussi

Consultez CreateHardLink dans la librairie MSDN.

Exemple

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

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

; Crée un lien en dur vers le fichier actuel 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 $aData = _WinAPI_EnumHardLinks($sFile)

_ArrayDisplay($aData, '_WinAPI_EnumHardLinks')

FileDelete($sFile)