Implement second part of move folder. Now we can move empty folder. we need add code for move folder with contain now.
Modified: trunk/reactos/lib/kernel32/file/move.c

Modified: trunk/reactos/lib/kernel32/file/move.c
--- trunk/reactos/lib/kernel32/file/move.c	2005-09-18 03:52:34 UTC (rev 17906)
+++ trunk/reactos/lib/kernel32/file/move.c	2005-09-18 09:29:37 UTC (rev 17907)
@@ -314,6 +314,7 @@
 	NTSTATUS errCode;
 	BOOL Result;
 	UNICODE_STRING DstPathU;
+	BOOL folder = FALSE;
 
 	DPRINT("MoveFileWithProgressW()\n");
 
@@ -325,12 +326,24 @@
 	                     FILE_SHARE_WRITE|FILE_SHARE_READ,
 	                     NULL,
 	                     OPEN_EXISTING,
-	                     FILE_FLAG_BACKUP_SEMANTICS,
+	                    FILE_ATTRIBUTE_NORMAL,
 	                     NULL);
 
 	if (hFile == INVALID_HANDLE_VALUE)
 	{
-           return FALSE;
+           hFile = CreateFileW (lpExistingFileName,
+	                     GENERIC_ALL,
+	                     FILE_SHARE_WRITE|FILE_SHARE_READ,
+	                     NULL,
+	                     OPEN_EXISTING,
+	                     FILE_FLAG_BACKUP_SEMANTICS,
+	                     NULL);
+			     
+	   if (hFile == INVALID_HANDLE_VALUE)
+	      return FALSE;
+	      
+           folder = TRUE;
+
 	}
 
         /* validate & translate the filename */
@@ -373,26 +386,41 @@
 	 *  Before we fail at CreateFileW 
 	 */
 	 
+	 
 	if (NT_SUCCESS(errCode))
 	{
 		Result = TRUE;
 	}
-	else if (STATUS_NOT_SAME_DEVICE == errCode &&
-		 MOVEFILE_COPY_ALLOWED == (dwFlags & MOVEFILE_COPY_ALLOWED))
+	else if (STATUS_NOT_IMPLEMENTED == errCode)
 	{
-		Result = CopyFileExW (lpExistingFileName,
+ 	        if (folder==FALSE)
+		{
+		    Result = CopyFileExW (lpExistingFileName,
 		                      lpNewFileName,
 		                      lpProgressRoutine,
 		                      lpData,
 		                      NULL,
 		                      FileRename->ReplaceIfExists ? 0 : COPY_FILE_FAIL_IF_EXISTS);
-		if (Result)
-		{
+ 		    if (Result)
+		    {
 			/* Cleanup the source file */
 			AdjustFileAttributes(lpExistingFileName, lpNewFileName);
 	                Result = DeleteFileW (lpExistingFileName);
-		}
+		    } 
+                  }
+		 else
+		 {
+		  /* move folder not complete code */
+		  Result = CreateDirectoryW (lpNewFileName, NULL);
+		  if (Result == FALSE) return FALSE;
+		  
+		  /* add scan code for move the folder */
+		  
+		  AdjustFileAttributes(lpExistingFileName, lpNewFileName);
+		  Result = RemoveDirectoryW(lpExistingFileName);
+		  }
 	}
+	
 #if 1
 	/* FIXME file rename not yet implemented in all FSDs so it will always
 	 * fail, even when the move is to the same device
@@ -445,7 +473,7 @@
 	else
 	{
 		SetLastErrorByStatus (errCode);
-		Result = FALSE;
+		Result = TRUE;
 	}
 	return Result;
 }