Creates an NTFS hardlink to a file or a directory.
FileCreateNTFSLink ( "source", "hardlink" [, flag = 0] )
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. |
Success: | 1. |
Failure: | 0. |
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
#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