Procházet zdrojové kódy

Implement BfpDirectory_Rename for Posix.

MineBill před 5 měsíci
rodič
revize
8c6092504a
1 změnil soubory, kde provedl 21 přidání a 1 odebrání
  1. 21 1
      BeefySysLib/platform/posix/PosixCommon.cpp

+ 21 - 1
BeefySysLib/platform/posix/PosixCommon.cpp

@@ -1822,7 +1822,27 @@ BFP_EXPORT void BFP_CALLTYPE BfpDirectory_Create(const char* path, BfpFileResult
 
 BFP_EXPORT void BFP_CALLTYPE BfpDirectory_Rename(const char* oldName, const char* newName, BfpFileResult* outResult)
 {
-    NOT_IMPL;
+    if (rename(oldName, newName) != 0)
+    {
+        switch (errno)
+        {
+        case EEXIST:
+            OUTRESULT(BfpFileResult_AlreadyExists);
+            break;
+        case ENOTEMPTY:
+            OUTRESULT(BfpFileResult_NotEmpty);
+            break;
+        case EISDIR:
+        case ENOTDIR:
+            OUTRESULT(BfpFileResult_InvalidParameter);
+            break;
+        default:
+            OUTRESULT(BfpFileResult_UnknownError);
+            break;
+        }
+    }
+    else
+        OUTRESULT(BfpFileResult_Ok);
 }
 
 BFP_EXPORT void BFP_CALLTYPE BfpDirectory_Delete(const char* path, BfpFileResult* outResult)