Ver Fonte

Merge branch 'upstream-KWSys' into update-kwsys

* upstream-KWSys:
  KWSys 2017-12-15 (8f755ee9)
Brad King há 8 anos atrás
pai
commit
4966c8d8da
1 ficheiros alterados com 8 adições e 0 exclusões
  1. 8 0
      Source/kwsys/SystemTools.cxx

+ 8 - 0
Source/kwsys/SystemTools.cxx

@@ -2509,6 +2509,14 @@ bool SystemTools::RemoveFile(const std::string& source)
   if (IsJunction(ws) && DeleteJunction(ws)) {
     return true;
   }
+  const DWORD DIRECTORY_SOFT_LINK_ATTRS =
+    FILE_ATTRIBUTE_DIRECTORY | FILE_ATTRIBUTE_REPARSE_POINT;
+  DWORD attrs = GetFileAttributesW(ws.c_str());
+  if (attrs != INVALID_FILE_ATTRIBUTES &&
+      (attrs & DIRECTORY_SOFT_LINK_ATTRS) == DIRECTORY_SOFT_LINK_ATTRS &&
+      RemoveDirectoryW(ws.c_str())) {
+    return true;
+  }
   if (DeleteFileW(ws.c_str()) || GetLastError() == ERROR_FILE_NOT_FOUND ||
       GetLastError() == ERROR_PATH_NOT_FOUND) {
     return true;