una txt remove reemplazar from files ficheros eliminar directorio carpeta buscar borrar borra archivos archivo php file-io delete-directory

txt - PHP: la manera más simple de eliminar una carpeta(incluidos sus contenidos)



reemplazar archivo php (7)

La función rmdir() falla si la carpeta contiene algún archivo. Puedo recorrer todos los archivos del directorio con algo como esto:

foreach (scandir($dir) as $item) { if ($item == ''.'' || $item == ''..'') continue; unlink($dir.DIRECTORY_SEPARATOR.$item); } rmdir($dir);

¿Hay alguna manera de simplemente eliminar todo de una vez?


Bueno, siempre hay

system(''/bin/rm -rf '' . escapeshellarg($dir));

donde esté disponible.


Esta función elimina el directorio y todos los subdirectorios y archivos:

function DelDir($target) { if(is_dir($target)) { $files = glob( $target . ''*'', GLOB_MARK ); //GLOB_MARK adds a slash to directories returned foreach( $files as $file ) { DelDir( $file ); } rmdir( $target ); } elseif(is_file($target)) { unlink( $target ); } }


Prueba esto :

exec(''rm -rf ''.$user_dir);


Según this fuente;

Ahorre tiempo, si quiere limpiar un directorio o eliminarlo y está en Windows.

Utilizar esta:

chdir ($file_system_path); exec ("del *.* /s /q");

Puede usar otra sintaxis DEL o cualquier otra utilidad de shell. Es posible que deba permitir que el servicio interactúe con el escritorio, ya que esa es mi configuración actual y no la modificaré para probar esto.

De lo contrario, podría encontrar un método alternativo here.


Una función segura y buena ubicada en php comments by lprent. Impide la eliminación accidental de contenidos de directorios de enlaces simbólicos ubicados en el directorio actual.

public static function delTree($dir) { $files = array_diff(scandir($dir), array(''.'',''..'')); foreach ($files as $file) { (is_dir("$dir/$file") && !is_link($dir)) ? delTree("$dir/$file") : unlink("$dir/$file"); } return rmdir($dir); }


rrmdir() - eliminar directorios recursivamente:

function rrmdir($dir) { foreach(glob($dir . ''/*'') as $file) { if(is_dir($file)) rrmdir($file); else unlink($file); } rmdir($dir); }


function delete_files($dir) { if (is_dir($dir)) { $objects = scandir($dir); foreach ($objects as $object) { if ($object != "." && $object != "..") { if (filetype($dir."/".$object) == "dir") delete_files($dir."/".$object); else unlink ($dir."/".$object); } } reset($objects); rmdir($dir); } }