# Function Reference

# FileCreateNTFSLink

Creates an NTFS hardlink to a file or a directory.

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

## Parameters

source | Path of the source to which the hardlink will be created.
hardlink | Path of the hardlink.
flag | [optional] this flag determines whether to overwrite link if they already exist. Can be a combination of the following: $FC_NOOVERWRITE (0) = (default) do not overwrite existing link $FC_OVERWRITE (1) = overwrite existing link Constants are defined in FileConstants.au3.

## Return Value

Success: | 1.
Failure: | 0.

## Remarks

The destination directory must already exist.
This function works only on volumes with the NTFS File system.
If the source is a file, the hardlink must be on the same volume.
If the source is a directory cross volume is allowed.
FileDelete() or FileMove() can be used on hardlink.
To manage the link with the explorer you can use the shell extension NTFSLink

## Related

FileCreateShortcut

## Example

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

    Example()

    Func Example()
        ; Create a constant variable in Local scope of the filepath that will be read/written to.
        Local Const $sFilePath = _WinAPI_GetTempFileName(@TempDir)

        ; Create a temporary file to link to.
        If Not FileWrite($sFilePath, "This is an example of using FileCreateNTFSLink.") Then
            MsgBox($MB_SYSTEMMODAL, "", "An error occurred whilst writing the temporary file.")
            Return False
        EndIf

        ; Create a NTFS link of the .txt file to the .log file on the desktop.
        Local $iNTFSLink = FileCreateNTFSLink($sFilePath, @TempDir & "\ExampleNTFSLink.log")

        ; Display a message of whether the NTFS link was created.
        If $iNTFSLink Then
            ; Open the desktop directory.
            ShellExecute(@TempDir)

            MsgBox($MB_SYSTEMMODAL, "", "The NTFS link was created." & @CRLF & "FileCreateNTFSLink returned: " & $iNTFSLink)
        Else
            MsgBox($MB_SYSTEMMODAL, "", "The NTFS link wasn't created." & @CRLF & "FileCreateNTFSLink returned: " & $iNTFSLink)
        EndIf

        ; Delete the temporary files.
        FileDelete($sFilePath)
        FileDelete(@TempDir & "\ExampleNTFSLink.log")
    EndFunc   ;==>Example