Copie todo el contenido de un directorio a otro directorio en PHP

Dado un directorio y la tarea es copiar el contenido del directorio a otro directorio usando las funciones de PHP. Hay muchas funciones que se utilizan para copiar el contenido de un directorio a otro.

Funciones utilizadas:

  • Función copy() : La función copy() se usa para hacer una copia de un archivo específico. Realiza una copia del archivo de origen en el archivo de destino y, si el archivo de destino ya existe, se sobrescribe. La función copy() devuelve verdadero en caso de éxito y falso en caso de falla.

    Sintaxis:

    bool copy($source, $dest)
  • Función opendir() : La función opendir() se utiliza para abrir un identificador de directorio. La ruta del directorio que se va a abrir se envía como un parámetro a la función opendir() y devuelve un recurso de identificador de directorio en caso de éxito o FALSO en caso de error.

    Sintaxis:

    opendir($path, $context)
  • Función is_dir() : La función is_dir() se utiliza para comprobar si el archivo especificado es un directorio o no. El nombre del archivo se envía como parámetro a la función is_dir() y devuelve True si el archivo es un directorio; de lo contrario, devuelve False.

    Sintaxis:

    is_dir($file)
  • Función scandir() : La función scandir() se utiliza para devolver una array de archivos y directorios del directorio especificado. La función scandir() enumera los archivos y directorios que están presentes dentro de una ruta específica. El directorio, el comportamiento de flujo y el orden de clasificación de los archivos y directorios se pasan como un parámetro a la función scandir() y devuelve una array de nombres de archivo en caso de éxito o Falso en caso de falla.

    Sintaxis:

    scandir(directory, sorting_order, context)
  • Función readdir(): La función readdir() se utiliza para devolver el nombre de la siguiente entrada en un directorio. Este método devuelve los nombres de archivo en el orden en que están almacenados en el sistema de nombres de archivo. El identificador del directorio se envía como un parámetro a la función readdir() y devuelve el nombre de entrada/nombre de archivo en caso de éxito o Falso en caso de error.

    Sintaxis:

    readdir(dir_handle)

Ejemplo 1: este ejemplo utiliza la función readdir() para leer archivos del directorio de origen.

<?php
  
function custom_copy($src, $dst) { 
  
    // open the source directory
    $dir = opendir($src); 
  
    // Make the destination directory if not exist
    @mkdir($dst); 
  
    // Loop through the files in source directory
    while( $file = readdir($dir) ) { 
  
        if (( $file != '.' ) && ( $file != '..' )) { 
            if ( is_dir($src . '/' . $file) ) 
            { 
  
                // Recursively calling custom copy function
                // for sub directory 
                custom_copy($src . '/' . $file, $dst . '/' . $file); 
  
            } 
            else { 
                copy($src . '/' . $file, $dst . '/' . $file); 
            } 
        } 
    } 
  
    closedir($dir);
} 
  
$src = "C:/xampp/htdocs/geeks";
  
$dst = "C:/xampp/htdocs/gfg";
  
custom_copy($src, $dst);
  
?>

Producción:

  • Antes de ejecutar el programa en localhost:
  • Después de ejecutar el programa en localhost:

Ejemplo 2: este ejemplo utiliza la función scandir() para leer archivos del directorio de origen.

<?php
    
function custom_copy($src, $dst) { 
   
    // open the source directory
    $dir = opendir($src); 
   
    // Make the destination directory if not exist
    @mkdir($dst); 
   
    // Loop through the files in source directory
    foreach (scandir($src) as $file) { 
   
        if (( $file != '.' ) && ( $file != '..' )) { 
            if ( is_dir($src . '/' . $file) ) 
            { 
   
                // Recursively calling custom copy function
                // for sub directory 
                custom_copy($src . '/' . $file, $dst . '/' . $file); 
   
            } 
            else { 
                copy($src . '/' . $file, $dst . '/' . $file); 
            } 
        } 
    } 
   
    closedir($dir);
}  
  
$src = "C:/xampp/htdocs/geeks";
  
$dst = "C:/xampp/htdocs/gfg";
  
custom_copy($src, $dst);
  
?>

Producción:

  • Antes de ejecutar el programa en localhost:
  • Después de ejecutar el programa en localhost:

Publicación traducida automáticamente

Artículo escrito por aman neekhara y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *