�tablit un lien en dur entre un fichier existant et un nouveau fichier
#include <WinAPIFiles.au3>
_WinAPI_CreateHardLink ( $sNewFile, $sExistingFile )
$sNewFile | Le nom du nouveau fichier. |
$sExistingFile | Le nom du fichier existant. |
Succ�s: | Retourne True. |
�chec: | Retourne False, appelez _WinAPI_GetLastError() pour obtenir des informations sur l'erreur |
_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.
Consultez CreateHardLink dans la librairie MSDN.
#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)