Eliminar todos los archivos de una carpeta usando PHP

En PHP, los archivos de una carpeta se pueden eliminar utilizando varios enfoques y métodos incorporados, como desvincular, DirectoryIterator y DirectoryRecursiveIterator.
Algunos de estos enfoques se explican a continuación:

Enfoque 1:

  • Genere una lista de archivos usando el método glob()
  • Iterar sobre la lista de archivos.
  • Compruebe si el nombre de los archivos es válido.
  • Elimine el archivo usando el método unlink() .

Ejemplo:

<?php
// PHP program to delete all
// file from a folder
   
// Folder path to be flushed
$folder_path = "myGeeks";
   
// List of name of files inside
// specified folder
$files = glob($folder_path.'/*'); 
   
// Deleting all the files in the list
foreach($files as $file) {
   
    if(is_file($file)) 
    
        // Delete the given file
        unlink($file); 
}
?>

Salida:
Antes de ejecutar el código:

Después de ejecutar el código:

Nota: Los archivos ocultos se pueden incluir en la operación de eliminación de archivos agregando el siguiente código:

$hidden_files = glob($folder_path.'/{, .}*', GLOB_BRACE);

Enfoque 2:

Ejemplo:

<?php
// PHP program to delete all files from a folder
  
// Deleting all the files inside the given folder
array_map('unlink', array_filter(
            (array) array_merge(glob("myGeeks/*"))));
  
?>

Enfoque 3:

  • Genere una lista de archivos usando DirectoryIterator.
  • Iterar sobre la lista de archivos.
  • Valide el archivo mientras verifica si el directorio del archivo tiene un punto o no.
  • Usando la referencia del método getPathName, elimine el archivo usando el método unlink() .

Ejemplo:

<?php
// PHP program to delete all files
// from a folder
  
// Folder path to be flushed
$folder_path = 'myGeeks/';
  
// Assigning files inside the directory
$dir = new DirectoryIterator(dirname($folder_path));
  
// Deleting all the files in the list
foreach ($dir as $fileinfo) {
      
    if (!$fileinfo->isDot()) {
  
        // Delete the given file
        unlink($fileinfo->getPathname());
    }
}
?>

Enfoque 4:

  • Genere una lista de todas las jerarquías de directorios dentro del directorio de carpetas dado usando RecursiveDirectoryIterator
    $dir = new RecursiveDirectoryIterator($dir, FilesystemIterator::SKIP_DOTS);
    $dir = new RecursiveIteratorIterator($dir, RecursiveIteratorIterator::CHILD_FIRST);
  • FilesystemIterator::SKIP_DOTS se usa para ignorar los puntos al generar una lista de archivos.
  • RecursiveIteratorIterator::CHILD_FIRST se usa para elegir archivos presentes en el directorio raíz.
  • Repita la lista de archivos y elimine carpetas y archivos de acuerdo con la especificación.

Ejemplo:

<?php
// PHP program to delete all FilesystemIterator
// from a folder
   
// Folder path to be flushed
$dir = "myGeeks/";
   
// Assigning files inside the directory
$dir = new RecursiveDirectoryIterator(
    $dir, FilesystemIterator::SKIP_DOTS);
   
// Reducing file search to given root
// directory only
$dir = new RecursiveIteratorIterator(
    $dir,RecursiveIteratorIterator::CHILD_FIRST);
   
// Removing directories and files inside
// the specified folder
foreach ( $dir as $file ) { 
    $file->isDir() ?  rmdir($file) : unlink($file);
}
?>

Publicación traducida automáticamente

Artículo escrito por Harshit Saini 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 *