oceans Posted May 23, 2007 Share Posted May 23, 2007 Dear People, Does any one know how to delete a folder completely (with or with out any content in it). Situation I am having: I upload 3 files into a new folder, and rename the folder. I only see 3 files in it, yes it is correct, but when I see property of the folder, it says I have 4 files! ( I confirm I did not put any hidden files). Now, the problem comes, when I delete the files. Since I know the exact name of the 3 files, I delete them, but when I want to remove the folder, complaint is the folder is not empty! I all tricks I can, I can’t solve it, any one who could help me, thanks. Quote Link to comment https://forums.phpfreaks.com/topic/52598-solved-deleting-not-empty-folder/ Share on other sites More sharing options...
trq Posted May 23, 2007 Share Posted May 23, 2007 If your on Linux you could use.... <?php exec('rm -fr dirtodelete'); ?> Quote Link to comment https://forums.phpfreaks.com/topic/52598-solved-deleting-not-empty-folder/#findComment-259558 Share on other sites More sharing options...
oceans Posted May 23, 2007 Author Share Posted May 23, 2007 Do you have any thing for Win? Quote Link to comment https://forums.phpfreaks.com/topic/52598-solved-deleting-not-empty-folder/#findComment-259563 Share on other sites More sharing options...
jitesh Posted May 23, 2007 Share Posted May 23, 2007 <?php $files_and_folders = glob("*",GLOB_ONLYDIR); echo "<pre>"; print_r($files_and_folders); foreach($files_and_folders as $key => $value){ unlink($value); } ?> Quote Link to comment https://forums.phpfreaks.com/topic/52598-solved-deleting-not-empty-folder/#findComment-259578 Share on other sites More sharing options...
Glyde Posted May 23, 2007 Share Posted May 23, 2007 <?php function removeDirectory($dir) { if (!is_dir($dir)) return false; $handle = opendir($dir); while (($file = readdir($handle)) !== false) { if ($file == "." || file == "..") continue; if (is_dir($dir . DIRECTORY_SEPARATOR . $file)) removeDirectory($dir . DIRECTORY_SEPARATOR . $file); else unlink($dir . DIRECTORY_SEPARATOR . $file); } closedir($dir); rmdir($dir); } ?> Quote Link to comment https://forums.phpfreaks.com/topic/52598-solved-deleting-not-empty-folder/#findComment-259580 Share on other sites More sharing options...
oceans Posted May 23, 2007 Author Share Posted May 23, 2007 Dear Glyde, Thanks for function, it appears it falls to infinite loop (page does not respond, folder is still there), I am testing with a file in the folder. Quote Link to comment https://forums.phpfreaks.com/topic/52598-solved-deleting-not-empty-folder/#findComment-259587 Share on other sites More sharing options...
oceans Posted May 23, 2007 Author Share Posted May 23, 2007 Dear Jitesh, Your does not work either, but it appears that it is going to delete all the way from root! Quote Link to comment https://forums.phpfreaks.com/topic/52598-solved-deleting-not-empty-folder/#findComment-259595 Share on other sites More sharing options...
oceans Posted May 23, 2007 Author Share Posted May 23, 2007 People I hope some one can add their help, thanks. Quote Link to comment https://forums.phpfreaks.com/topic/52598-solved-deleting-not-empty-folder/#findComment-259643 Share on other sites More sharing options...
MasterACE14 Posted May 23, 2007 Share Posted May 23, 2007 If the folder is actually on your PC you can use this. http://ccollomb.free.fr/unlocker/ If its on your webhost, then I don't know lol, sorry Regards ACE Quote Link to comment https://forums.phpfreaks.com/topic/52598-solved-deleting-not-empty-folder/#findComment-259650 Share on other sites More sharing options...
Daniel0 Posted May 23, 2007 Share Posted May 23, 2007 While being almost the same as Glyde's, this works for me: <?php function delete_folder($folder) { if(!is_dir($folder)) { trigger_error("'{$folder}' is not a folder", E_USER_ERROR); return false; } $folder = str_replace('\\', '/', $folder); if($folder[strlen($var)-1] == '/') { $folder = substr($folder,0,strlen($folder)-1); } $dh = opendir($folder); while($item = readdir($dh)) { if($item == '.' || $item == '..') { continue; } if(is_dir("{$folder}/{$item}")) { delete_folder("{$folder}/{$item}"); } else { unlink("{$folder}/{$item}"); } } closedir($dh); return rmdir($folder); } ?> Quote Link to comment https://forums.phpfreaks.com/topic/52598-solved-deleting-not-empty-folder/#findComment-259654 Share on other sites More sharing options...
MadTechie Posted May 23, 2007 Share Posted May 23, 2007 Heres the one i use <?php function recursive_remove_directory($directory, $empty=FALSE) { // if the path has a slash at the end we remove it here if(substr($directory,-1) == '/') { $directory = substr($directory,0,-1); } // if the path is not valid or is not a directory ... if(!file_exists($directory) || !is_dir($directory)) { // ... we return false and exit the function return FALSE; // ... if the path is not readable }elseif(!is_readable($directory)) { // ... we return false and exit the function return FALSE; // ... else if the path is readable }else{ // we open the directory $handle = opendir($directory); // and scan through the items inside while (FALSE !== ($item = readdir($handle))) { // if the filepointer is not the current directory // or the parent directory if($item != '.' && $item != '..') { // we build the new path to delete $path = $directory.'/'.$item; // if the new path is a directory if(is_dir($path)) { // we call this function with the new path recursive_remove_directory($path); // if the new path is a file }else{ // we remove the file unlink($path); } } } // close the directory closedir($handle); // if the option to empty is not set to true if($empty == FALSE) { // try to delete the now empty directory if(!rmdir($directory)) { // return false if not possible return FALSE; } } // return success return TRUE; } } ?> Quote Link to comment https://forums.phpfreaks.com/topic/52598-solved-deleting-not-empty-folder/#findComment-259659 Share on other sites More sharing options...
oceans Posted May 24, 2007 Author Share Posted May 24, 2007 Dear MadTechie & Daniel0, Both your codes work, thanks for help. Dear Glyde, Thanks for your help, it should be somthing I do not know how to twitch! Quote Link to comment https://forums.phpfreaks.com/topic/52598-solved-deleting-not-empty-folder/#findComment-260445 Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.