/**
  *	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);
 }