Прекрасная функция рекурсивного удаления директорий

Алгоритм не сложный, но так не хочется каждый раз его сочинять 🙂

function RemoveDir($path, $del_root = true)
{
	if(file_exists($path) && is_dir($path))
	{
		$dirHandle = opendir($path);
		while (false !== ($file = readdir($dirHandle))) 
		{
			if ($file!='.' && $file!='..')// исключаем папки с назварием '.' и '..' 
			{
				$tmpPath=$path.'/'.$file;
				chmod($tmpPath, 0777);
				
				if (is_dir($tmpPath))
	  		{  // если папка
					RemoveDir($tmpPath);
			  } 
	  		else 
	  			{ 
	  				if(file_exists($tmpPath))
					  {
						  // удаляем файл 
	  					unlink($tmpPath);
					   }
	  			}
			}
		}
		closedir($dirHandle);
		
		// удаляем текущую папку
		if(file_exists($path) && $del_root)
		{
			rmdir($path);
		}
	}
	else
	{
		return 0;
	}
}

Добавить комментарий

Ваш e-mail не будет опубликован.