Funktionreferenz


FileCreateNTFSLink

Beschreibung anzeigen in

Erstellt ein NTFS-Hardlink zu einer Datei oder einem Ordner.

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

Parameter

source Pfad von der Quelle, zu der der Hardlink erstellt wird.
hardlink Pfad des Hardlinks.
flag [optional] Dieses Flag bestimmt, ob der Link überschrieben werden soll, wenn er schon existiert.
Kann eine der folgenden Kombinationen sein:
    $FC_NOOVERWRITE (0) = (Standard) Überschreibt existierenden Link nicht.
    $FC_OVERWRITE (1) = Überschreibt existierenden Link.

Die Konstanten sind in FileConstants.au3 definiert.

Rückgabewert

Erfolg: 1
Fehler: 0

Bemerkungen

Der Zielordner muss bereits existieren.

Dieser Befehl funktioniert nur auf Datenträgern mit dem NTFS-Dateisystem.

Wenn die Quelle eine Datei ist, dann muss der Hardlink auf dem gleichen Datenträger sein.
Wenn die Quelle ein Ordner ist, dann kann der Hardlink auch auf anderen Festplatten sein.

FileDelete() oder FileMove() können für einen Hardlink benutzt werden.

Um die Links mit dem Explorer zu verwalten, kann man die folgende shell extension benutzen:
NTFSLink.

Verwandte Funktionen

FileCreateShortcut

Beispiel

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

Example()

Func Example()
    ; Erstellt eine Konstante im lokalen Bereich des Dateipfads der gelesen bzw. in den geschrieben werden soll.
    Local Const $sFilePath = _WinAPI_GetTempFileName(@TempDir)

    ; Erstellt eine temporäre Datei auf die verlinkt werden soll.
    If Not FileWrite($sFilePath, "Dies ist ein Beispiel für die Verwendung von FileCreateNTFSLink.") Then
        MsgBox($MB_SYSTEMMODAL, "", "Es ist während dem schreiben der temporären Datei ein Fehler aufgetreten.")
        Return False
    EndIf

    ; Erstellt einen NTFS-Hardlink der .txt-Datei zu der .log-Datei auf dem Desktop.
    Local $iNTFSLink = FileCreateNTFSLink($sFilePath, @TempDir & "\ExampleNTFSLink.log")

    ; Zeigt eine Nachricht, ob der NTFS-Hardlink erstellt wurde.
    If $iNTFSLink Then
        ; Öffnet den Desktop-Ordner.
        ShellExecute(@TempDir)

        MsgBox($MB_SYSTEMMODAL, "", "Der NTFS-Hardlink wurde erstellt." & @CRLF & "FileCreateNTFSLink gibt folgendes zurück: " & $iNTFSLink)
    Else
        MsgBox($MB_SYSTEMMODAL, "", "Der NTFS-Hardlink konnt nicht erstellt werden." & @CRLF & "FileCreateNTFSLink gibt folgendes zurück: " & $iNTFSLink)
    EndIf

    ; Löscht die temporären Datei.
    FileDelete($sFilePath)
    FileDelete(@TempDir & "\ExampleNTFSLink.log")
EndFunc   ;==>Example