/** * Function to recursively delete a directory. * * @param $dirname Directory to be removed. * * @return Boolean indicating if the directory could be deleted or not. * * @internal */ function _delete($dirname) { // Simple delete for a file if (is_file($dirname)) { return unlink($dirname); } // Loop through the folder $dir = dir($dirname); while (false !== ($entry = $dir->read())) { // Skip pointers if ($entry == '.' || $entry == '..') { continue; } // Deep delete directories if (is_dir("{$dirname}/{$entry}")) { YDFSDirectory::_delete("{$dirname}/{$entry}"); } else { unlink("{$dirname}/{$entry}"); } } // Clean up $dir->close(); return rmdir($dirname); }