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)