Explorar o código

Use mirror to copy files

jmontoyaa %!s(int64=9) %!d(string=hai) anos
pai
achega
f1f2185b8d
Modificáronse 1 ficheiros con 5 adicións e 47 borrados
  1. 5 47
      main/inc/lib/fileManage.lib.php

+ 5 - 47
main/inc/lib/fileManage.lib.php

@@ -261,54 +261,12 @@ function move($source, $target, $forceMove = false, $moveContent = false)
  */
 function copyDirTo($orig_dir_path, $destination, $move = true)
 {
-	if ($orig_dir_path == $destination) {
-		return false;
-	}
-
-	$save_dir = getcwd();
-	// Extract directory name - create it at destination - update destination trail
-	$dir_name = basename($orig_dir_path);
-    $dir_to_copy = array();
-	if (is_dir($orig_dir_path)) {
-		if (!is_dir($destination.'/'.$dir_name)) {
-			mkdir(
-				$destination.'/'.$dir_name,
-				api_get_permissions_for_new_directories()
-			);
-		}
-		$destination_trail = $destination.'/'.$dir_name;
-		if (is_dir($destination)) {
-			chdir($orig_dir_path) ;
-			$handle = opendir($orig_dir_path);
+    $fs = new \Symfony\Component\Filesystem\Filesystem();
+    $fs->mirror($orig_dir_path, $destination);
 
-			while ($element = readdir($handle)) {
-				if ($element == '.' || $element == '..') {
-					continue; // Skip the current and parent directories
-				} elseif (is_file($element)) {
-					copy($element, $destination_trail.'/'.$element);
-
-					if ($move) {
-						unlink($element) ;
-					}
-				} elseif (is_dir($element)) {
-					$dir_to_copy[] = $orig_dir_path.'/'.$element;
-				}
-			}
-
-			closedir($handle) ;
-
-			if (sizeof($dir_to_copy) > 0) {
-				foreach ($dir_to_copy as $this_dir) {
-					copyDirTo($this_dir, $destination_trail, $move); // Recursivity
-				}
-			}
-
-			if ($move) {
-				rmdir($orig_dir_path) ;
-			}
-			chdir($save_dir);
-		}
-	}
+    if ($move) {
+        $fs->remove($orig_dir_path);
+    }
 }