Symbolische Linkeffekte auf Dateisystemfunktionen

Mehrere Standarddateifunktionen, die Pfadnamen verwenden, um eine oder mehrere Dateien anzugeben, sind von der Verwendung symbolischer Links betroffen. In diesem Thema werden diese Funktionen aufgeführt und die Verhaltensänderungen beschrieben:

In den folgenden Beschreibungen werden die folgenden Begriffe verwendet:

  • Quelldatei: Die ursprüngliche Datei, die kopiert werden soll.
  • Zieldatei: Die neu erstellte Kopie der Datei.
  • Ziel: Die Entität, auf die ein symbolischer Link verweist.

Hinweis

Das Verhalten von Funktionen, die ein handle akzeptieren, das mit der CreateFile-Funktion erstellt wurde, z. B. die GetFileTime-Funktion , hängt davon ab, ob die CreateFile-Funktion mit dem FILE_FLAG_OPEN_REPARSE_POINT-Flag aufgerufen wurde oder nicht. Weitere Informationen finden Sie unter CreateFile und im folgenden Abschnitt CreateFile und CreateFileTransacted .

 

CopyFile und CopyFileTransacted

Wenn es sich bei der Quelldatei um einen symbolischen Link handelt, ist die tatsächlich kopierte Datei das Ziel des symbolischen Links.

Wenn die Zieldatei bereits vorhanden ist und ein symbolischer Link ist, wird das Ziel des symbolischen Links von der Quelldatei überschrieben.

CopyFileEx

Wenn COPY_FILE_COPY_SYMLINK angegeben ist, und:

  • Wenn es sich bei der Quelldatei um einen symbolischen Link handelt, wird der symbolische Link kopiert, nicht die Zieldatei.
  • Wenn die Quelldatei kein symbolischer Link ist, gibt es keine Verhaltensänderung.
  • Wenn die Zieldatei ein vorhandener symbolischer Link ist, wird der symbolische Link überschrieben, nicht die Zieldatei.
  • Wenn auch COPY_FILE_FAIL_IF_EXISTS angegeben wird und die Zieldatei ein vorhandener symbolischer Link ist, schlägt der Vorgang in allen Fällen fehl.

Wenn COPY_FILE_COPY_SYMLINK nicht angegeben ist, und:

  • Wenn auch COPY_FILE_FAIL_IF_EXISTS angegeben wird und die Zieldatei ein vorhandener symbolischer Link ist, schlägt der Vorgang nur fehl, wenn das Ziel der symbolischen Verknüpfung vorhanden ist.
  • Wenn COPY_FILE_FAIL_IF_EXISTS nicht angegeben ist, gibt es keine Verhaltensänderung.

Windows Server 2003 und Windows XP: Das COPY_FILE_COPY_SYMLINK-Flag wird nicht unterstützt. Wenn es sich bei der Quelldatei um einen symbolischen Link handelt, ist die tatsächlich kopierte Datei das Ziel des symbolischen Links.

CreateFile und CreateFileTransacted

Wenn durch den Aufruf dieser Funktion eine neue Datei erstellt wird, gibt es keine Verhaltensänderung.

Wenn FILE_FLAG_OPEN_REPARSE_POINT angegeben ist, und:

  • Wenn eine vorhandene Datei geöffnet wird und es sich um einen symbolischen Link handelt, ist das zurückgegebene Handle ein Handle zum symbolischen Link.
  • Wenn CREATE_ALWAYS, TRUNCATE_EXISTING oder FILE_FLAG_DELETE_ON_CLOSE angegeben werden, ist die betroffene Datei ein symbolischer Link.

Wenn FILE_FLAG_OPEN_REPARSE_POINT nicht angegeben ist, und:

  • Wenn eine vorhandene Datei geöffnet wird und es sich um einen symbolischen Link handelt, ist das zurückgegebene Handle ein Handle für das Ziel.
  • Wenn CREATE_ALWAYS, TRUNCATE_EXISTING oder FILE_FLAG_DELETE_ON_CLOSE angegeben werden, ist die betroffene Datei das Ziel.

Wenn der Pfad auf einen symbolischen Link verweist, erstellt die Funktion eine feste Verknüpfung mit dem Ziel.

DeleteFile und DeleteFileTransacted

Wenn der Pfad auf einen symbolischen Link verweist, wird der symbolische Link gelöscht, nicht das Ziel. Um ein Ziel zu löschen, müssen Sie CreateFile aufrufen und FILE_FLAG_DELETE_ON_CLOSE angeben.

FindFirstChangeNotification

Wenn der Pfad auf einen symbolischen Link verweist, wird das Benachrichtigungshandle für das Ziel erstellt. Wenn eine Anwendung registriert ist, um Änderungsbenachrichtigungen für ein Verzeichnis zu erhalten, das symbolische Links enthält, wird die Anwendung nur benachrichtigt, wenn die symbolischen Verknüpfungen geändert wurden, nicht die Zieldateien.

FindFirstFile und FindFirstFileTransacted

Wenn der Pfad auf einen symbolischen Link verweist, enthält der WIN32_FIND_DATA Puffer Informationen zum symbolischen Link, nicht zum Ziel.

FindFirstFileEx

Wenn der Pfad auf einen symbolischen Link verweist, enthält der WIN32_FIND_DATA Puffer Informationen zum symbolischen Link, nicht zum Ziel.

FindNextFile

Wenn der Pfad auf einen symbolischen Link verweist, enthält der WIN32_FIND_DATA Puffer Informationen zum symbolischen Link, nicht zum Ziel.

GetBinaryType

Wenn der Pfad auf einen symbolischen Link verweist, wird die Zieldatei verwendet.

GetCompressedFileSize und GetCompressedFileSizeTransacted

Wenn der Pfad auf einen symbolischen Link verweist, gibt die Funktion die Dateigröße des Ziels zurück.

GetDiskFreeSpace

Wenn der Pfad auf eine symbolische Verknüpfung verweist, wird der Vorgang für das Ziel ausgeführt.

Getdiskfreespaceex

Wenn der Pfad auf eine symbolische Verknüpfung verweist, wird der Vorgang für das Ziel ausgeführt.

GetFileAttributes

Wenn der Pfad auf einen symbolischen Link verweist, gibt die Funktion Attribute für den symbolischen Link zurück.

GetFileAttributesEx

Wenn der Pfad auf einen symbolischen Link verweist, gibt die Funktion Attribute für den symbolischen Link zurück.

GetFileSecurity

Wenn der Pfad auf einen symbolischen Link verweist, gibt die Funktion Attribute für den symbolischen Link zurück.

GetTempPath

Wenn der Pfad auf einen symbolischen Link verweist, behält der Name des temporären Pfads alle symbolischen Verknüpfungen bei.

GetVolumeInformation

Wenn der Pfad auf einen symbolischen Link verweist, gibt die Funktion Volumeinformationen für das Ziel zurück.

SetFileAttributes

Wenn der Pfad auf einen symbolischen Link verweist, ruft die Funktion Attribute für den symbolischen Link ab.

SetFileSecurity

Wenn der Pfad auf einen symbolischen Link verweist, gibt die Funktion Attribute für den symbolischen Link zurück.

CopyFile

CopyFileTransacted

CopyFileEx

CreateFile

CreateFileTransacted

CreateHardLink

CreateHardLinkTransacted

DeleteFile

DeleteFileTransacted

FindFirstChangeNotification

FindFirstFile

FindFirstFileEx

FindFirstFileTransacted

FindNextFile

GetBinaryType

GetCompressedFileSize

GetCompressedFileSizeTransacted

GetDiskFreeSpace

Getdiskfreespaceex

GetFileAttributes

GetFileAttributesEx

GetFileSecurity

GetTempPath

GetVolumeInformation

SetFileAttributes

SetFileSecurity