Functions > FileDirDisk >


FileCreateNTFSLink

Cr�e un hardlink NTFS vers un fichier ou un r�pertoire.

FileCreateNTFSLink ( "source", "hardlink" [, flag = 0] )

Param�tres

source Chemin de la source dans laquelle le lien sera cr��.
hardlink Chemin du lien.
flag [optionnel] D�termine s'il faut remplacer un lien lorsqu'il existe d�j�.
Peut prendre une des valeurs suivantes:
    $FC_NOOVERWRITE (0) = (par d�faut) n'�crase pas un lien existant
    $FC_OVERWRITE (1) = �crase un lien existant

Valeur de retour

Succ�s: Retourne 1.
�chec: Retourne 0.

Remarques

Le r�pertoire de destination doit d�j� exister.

Cette fonction ne fonctionne que sur un volume avec un syst�me de fichiers NTFS.

Si la source est un fichier, le hardlink doit �tre sur le m�me volume.
Si la source est un r�pertoire, le cross volume est autoris�.

FileDelete() ou FileMove() peut �tre utilis�e sur un hardlink.

Pour g�rer le lien avec l'explorateur, vous pouvez utiliser l'extension du shell NTFSLink

En relation

FileCreateShortcut

Exemple

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

Example()

Func Example()
    ; Cr�e une constante locale avec le chemin du fichier qui sera lu/�crit.
    Local Const $sFilePath = _WinAPI_GetTempFileName(@TempDir)

    ; Cr�e un fichier temporaire vers lequel le hardlink pointera.
    If Not FileWrite($sFilePath, "Exemple d'utilisation de FileCreateNTFSLink.") Then
        MsgBox($MB_SYSTEMMODAL, "", "Une erreur est survenue lors d'une �criture dans le fichier temporaire.")
        Return False
    EndIf

    ; Cr�e un lien NTFS du fichier .txt au fichier .log du bureau.
    Local $iNTFSLink = FileCreateNTFSLink($sFilePath, @DesktopDir & "\ExampleNTFSLink.log")

    ; Affiche un message si le lien NTFS a �t� cr��.
    If $iNTFSLink Then
        ; Ouvre le dossier du bureau.
        ShellExecute(@DesktopDir)

        MsgBox($MB_SYSTEMMODAL, "", "Le lien NTFS a �t� cr��." & @CRLF & _
            "FileCreateNTFSLink a retourn�: " & $iNTFSLink)
    Else
        MsgBox($MB_SYSTEMMODAL, "", "Le lien NTFS n'a pas �t� cr��." & @CRLF & _
            "FileCreateNTFSLink a retourn�: " & $iNTFSLink)
    EndIf

    ;Supprime les fichiers temporaires.
    FileDelete($sFilePath)
    FileDelete(@DesktopDir & "\ExampleNTFSLink.log")
EndFunc   ;==>Example