共用方式為


檔案系統函式上的符號連結效果

使用路徑名稱來指定一或多個檔案的數個標準檔案函式會受到符號連結的使用影響。 本主題列出這些函式,並描述行為變更:

在下列描述中,會使用下列詞彙:

  • 原始程式檔— 要複製的源檔。
  • 目的地檔案 - 新建立的檔案複本。
  • 目標: 符號連結所指向的實體。

注意

接受使用 CreateFile 函式所建立句柄的函式行為,例如 getFileTime函式,會根據 CreateFile 函式是否使用 FILE_FLAG_OPEN_REPARSE_POINT 旗標呼叫而有所不同。 如需詳細資訊,請參閱 CreateFile 和下列 CreateFile 和 CreateFileTransacted 一節。

 

CopyFile 和 CopyFileTransacted

如果來源檔案是符號連結,則複製的實際檔案是符號鏈接的目標。

如果目的地檔案已經存在,而且是符號連結,來源檔案會覆寫符號鏈接的目標。

CopyFileEx

如果指定了 COPY_FILE_COPY_SYMLINK, 則為 :

  • 如果來源檔案是符號連結,則會複製符號連結,而不是目標檔案。
  • 如果來源檔案不是符號連結,則行為沒有變更。
  • 如果目的地檔案是現有的符號連結,則會覆寫符號連結,而不是目標檔案。
  • 如果同時指定 COPY_FILE_FAIL_IF_EXISTS,而且目的地檔案是現有的符號連結,則作業在所有情況下都會失敗。

如果未指定 COPY_FILE_COPY_SYMLINK, 則:

  • 如果同時指定 COPY_FILE_FAIL_IF_EXISTS,而且目的地檔案是現有的符號連結,則只有在符號鏈接的目標存在時,作業才會失敗。
  • 如果未指定 COPY_FILE_FAIL_IF_EXISTS,則行為沒有變更。

Windows Server 2003 和 Windows XP:不支援COPY_FILE_COPY_SYMLINK 旗標。 如果來源檔案是符號連結,則複製的實際檔案是符號鏈接的目標。

CreateFile 和 CreateFileTransacted

如果呼叫此函式會建立新的檔案,則行為不會有任何變更。

如果指定了 FILE_FLAG_OPEN_REPARSE_POINT, 則為 :

  • 如果已開啟現有的檔案,而且它是符號連結,傳回的句柄就是符號連結的句柄。
  • 如果指定 CREATE_ALWAYSTRUNCATE_EXISTINGFILE_FLAG_DELETE_ON_CLOSE,受影響的檔案就是符號連結。

如果未指定 FILE_FLAG_OPEN_REPARSE_POINT, 則為 :

  • 如果已開啟現有的檔案,而且它是符號連結,則傳回的句柄是目標的句柄。
  • 如果指定 CREATE_ALWAYSTRUNCATE_EXISTINGFILE_FLAG_DELETE_ON_CLOSE,受影響的檔案就是目標。

如果路徑指向符號連結,函式會建立目標的硬連結。

DeleteFile 和 DeleteFileTransacted

如果路徑指向符號連結,則會刪除符號連結,而不是目標。 若要刪除目標,您必須呼叫 CreateFile,並指定 FILE_FLAG_DELETE_ON_CLOSE

FindFirstChangeNotification

如果路徑指向符號連結,則會為目標建立通知句柄。 如果應用程式已註冊以接收包含符號連結之目錄的變更通知,則應用程式只會在符號連結變更時收到通知,而不是目標檔案。

FindFirstFile 和 FindFirstFileTransacted

如果路徑指向符號連結,則 WIN32_FIND_DATA 緩衝區包含符號連結的相關信息,而不是目標。

FindFirstFileEx

如果路徑指向符號連結,則 WIN32_FIND_DATA 緩衝區包含符號連結的相關信息,而不是目標。

FindNextFile

如果路徑指向符號連結,則 WIN32_FIND_DATA 緩衝區包含符號連結的相關信息,而不是目標。

GetBinaryType

如果路徑指向符號連結,則會使用目標檔案。

GetCompressedFileSize 和 GetCompressedFileSizeTransacted

如果路徑指向符號連結,函式會傳回目標的檔案大小。

GetDiskFreeSpace

如果路徑指向符號連結,則會在目標上執行作業。

GetDiskFreeSpaceEx

如果路徑指向符號連結,則會在目標上執行作業。

GetFileAttributes

如果路徑指向符號連結,函式會傳回符號連結的屬性。

GetFileAttributesEx

如果路徑指向符號連結,函式會傳回符號連結的屬性。

GetFileSecurity

如果路徑指向符號連結,函式會傳回符號連結的屬性。

GetTempPath

如果路徑指向符號連結,暫存路徑名稱會維護任何符號連結。

GetVolumeInformation

如果路徑指向符號連結,函式會傳回目標的磁碟區資訊。

SetFileAttributes

如果路徑指向符號連結,函式會擷取符號連結的屬性。

SetFileSecurity

如果路徑指向符號連結,函式會傳回符號連結的屬性。

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