From a5dfbe01d59cf1756a2bbeb7870fe994f1527a0a Mon Sep 17 00:00:00 2001 From: Orgad Shaneh Date: Thu, 1 Jun 2023 12:58:46 +0300 Subject: [PATCH] Utils: Support hardlink detection also on Windows Change-Id: I717899ef73e965438ecd28983397ffc90a7ff570 Reviewed-by: David Schulz Reviewed-by: Qt CI Patch Build Bot --- src/libs/utils/devicefileaccess.cpp | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/libs/utils/devicefileaccess.cpp b/src/libs/utils/devicefileaccess.cpp index f5bb1d20482..bd139d9b168 100644 --- a/src/libs/utils/devicefileaccess.cpp +++ b/src/libs/utils/devicefileaccess.cpp @@ -493,6 +493,20 @@ bool DesktopDeviceFileAccess::hasHardLinks(const FilePath &filePath) const if (s.st_nlink > 1) return true; } +#elif defined(Q_OS_WIN) + const HANDLE handle = CreateFile((wchar_t *) filePath.toUserOutput().utf16(), + 0, + FILE_SHARE_READ, + NULL, + OPEN_EXISTING, + FILE_FLAG_BACKUP_SEMANTICS, + NULL); + if (handle == INVALID_HANDLE_VALUE) + return false; + + FILE_STANDARD_INFO info; + if (GetFileInformationByHandleEx(handle, FileStandardInfo, &info, sizeof(info))) + return info.NumberOfLinks > 1; #else Q_UNUSED(filePath) #endif