• Модуль: main
  • Путь к файлу: ~/bitrix/modules/main/lib/composite/data/filestorage.php
  • Класс: BitrixMainCompositeDataFileStorage
  • Вызов: FileStorage::deleteRecursive
static function deleteRecursive($relativePath = "", $validTime = 0)
{
	$bytes = 0.0;
	if (strpos($relativePath, "..") !== false)
	{
		return $bytes;
	}

	$relativePath = rtrim($relativePath, "/");
	$baseDir = $_SERVER["DOCUMENT_ROOT"].BX_PERSONAL_ROOT."/html_pages";
	$absPath = $baseDir.$relativePath;

	if (is_file($absPath))
	{
		if (
			($validTime && filemtime($absPath) > $validTime) ||
			in_array($relativePath, array("/.enabled", "/.config.php", "/.htaccess", "/.size", "/404.php")))
		{
			return $bytes;
		}

		$bytes = filesize($absPath);
		@unlink($absPath);
		return doubleval($bytes);
	}
	elseif (is_dir($absPath) && ($handle = opendir($absPath)) !== false)
	{
		while (($file = readdir($handle)) !== false)
		{
			if ($file === "." || $file === "..")
			{
				continue;
			}

			$bytes += self::deleteRecursive($relativePath."/".$file, $validTime);
		}
		closedir($handle);
		@rmdir($absPath);
	}

	return doubleval($bytes);
}