• Home
  • About
  • Who Am I?
  •  

    PHP - Recursive file and directory deletion

    I use this 2 functions to delete files and directories recursively. Some of you may find it usefull when

    you have to delete a directory which has files and sub directories inside it. Can come in handy i guess :)

    Code (php)
    1.  
    2.    //use it like this.
    3.    $dirstodelete = array();
    4.    recursiveDelete("dir/to/delete"); // deletes the files and makes a list of directories to    delete
    5.    delDirs(); //deletion of directories
    6.         //////////////////
    7.         //////////////////
    8.    function recursiveDelete($dir){
    9.         global $dirstodelete;
    10.         $dirstodelete[] = $dir;
    11.         if (is_dir($dir)) {
    12.             if ($dh = opendir($dir)) {
    13.                 while (($file = readdir($dh)) !== false) {
    14.                     if($file != ‘.’ && $file != ‘..’){
    15.                         $fullpath = $dir."/".$file;
    16.                                                 if(is_dir($fullpath)){
    17.                             recursiveDelete($fullpath);
    18.                             $dirstodelete[] = $fullpath;
    19.                         }else{
    20.                             @unlink($fullpath);
    21.                         }
    22.                     }
    23.                 }
    24.                 closedir($dh);
    25.             }
    26.         }
    27.     }
    28.         //////////////////
    29.         //////////////////
    30.     function delDirs(){
    31.         global $dirstodelete;
    32.                 $dirstodelete = array_reverse($dirstodelete);
    33.         if(count($dirstodelete)){
    34.             foreach($dirstodelete as $onedir){
    35.                 @rmdir($onedir);
    36.             }
    37.         }
    38.     }

    Leave a Reply