function DoDelete() { $this->CheckAdminPrivs('dbexport'); $backupdir = $this->Post['backupdir']; $delete=$this->Post['delete']; if(is_array($delete)) { $dir = ROOT_PATH.'backup/'.$backupdir.'/'; foreach($delete as $filename) { @unlink($dir.str_replace(array('/', '\\'), '', $filename)); } if ($backupdir && false!==strpos($dir,'/db/')) { $load = new Load(); $load->lib('io'); $IoHandler = new IoHandler(); $f_list = $IoHandler->ReadDir($dir,1); if(count($f_list) < 3) { $d = true; foreach ($f_list as $f) { if ((filesize($f) > 0) || ((basename($f) != 'index.htm') && (basename($f) != 'index.html'))) { $d = false; break; } } if ($d) { $IoHandler->RemoveDir($dir); } } } $this->Messager('指定备份文件成功删除',null); } else { $this->Messager('您没有选择要删除的备份文件,请返回'); } }
function RemoveDir($dirname, $rm_self = 1) { clearstatcache(); if (is_dir($dirname) && ($dp = @opendir($dirname))) { while (($file = readdir($dp)) !== false) { if ($file != '.' and $file != "..") { clearstatcache(); if (is_dir($dirname . '/' . $file)) { IoHandler::RemoveDir($dirname . '/' . $file); } if (is_file($dirname . '/' . $file)) { IoHandler::DeleteFile($dirname . '/' . $file); } } } closedir($dp); if ($rm_self) { rmdir($dirname); } } return true; }
function RemoveDir($dir_name) { clearstatcache(); if(is_dir($dir_name) == false)Return false; $dir_handle = opendir($dir_name); while(($file = readdir($dir_handle)) !== false) { if($file != '.' and $file != "..") { clearstatcache(); if(is_dir($dir_name . '/' . $file)) { IoHandler::RemoveDir($dir_name . '/' . $file); } if(is_file($dir_name . '/' . $file)) { IoHandler::DeleteFile($dir_name . '/' . $file); } } } closedir($dir_handle); rmdir($dir_name); Return true; }