• Модуль: main
  • Путь к файлу: ~/bitrix/modules/main/lib/data/cacheenginefiles.php
  • Класс: BitrixMainDataCacheEngineFiles
  • Вызов: CacheEngineFiles::deleteOneDir
static function deleteOneDir($etime = 0, $ar = false)
{
	$deleteFromQueue = false;
	$dirName = MainLoader::getDocumentRoot().$ar["RELATIVE_PATH"];
	if ($ar["RELATIVE_PATH"] != '' && file_exists($dirName))
	{
		if (is_file($dirName))
		{
			DeleteDirFilesEx($ar["RELATIVE_PATH"]);
			$deleteFromQueue = true;
		}
		else
		{
			$dh = opendir($dirName);
			if (is_resource($dh))
			{
				$counter = 0;
				while (($file = readdir($dh)) !== false)
				{
					if ($file != "." && $file != "..")
					{
						DeleteDirFilesEx($ar["RELATIVE_PATH"]."/".$file);
						$counter++;
						if (time() > $etime)
							break;
					}
				}
				closedir($dh);

				if ($counter == 0)
				{
					rmdir($dirName);
					$deleteFromQueue = true;
				}
			}
		}
	}
	else
	{
		$deleteFromQueue = true;
	}

	if ($deleteFromQueue)
	{
		$con = MainApplication::getConnection();
		$con->queryExecute("DELETE FROM b_cache_tag WHERE ID = ".intval($ar["ID"]));
	}
}