• Модуль: main
  • Путь к файлу: ~/bitrix/modules/main/classes/general/file.php
  • Класс: CFile
  • Вызов: CFile::ChangeSubDir
static function ChangeSubDir($module_id, $old_subdir, $new_subdir)
{
	global $DB;

	if ($old_subdir!=$new_subdir)
	{
		$strSql = "
			UPDATE b_file SET
				SUBDIR = REPLACE(SUBDIR,'".$DB->ForSQL($old_subdir)."','".$DB->ForSQL($new_subdir)."'),
				TIMESTAMP_X = ".$DB->GetNowFunction()."
			WHERE MODULE_ID='".$DB->ForSQL($module_id)."'
		";

		if($rs = $DB->Query($strSql, false, __LINE__))
		{
			$from = "/".COption::GetOptionString("main", "upload_dir", "upload")."/".$old_subdir;
			$to = "/".COption::GetOptionString("main", "upload_dir", "upload")."/".$new_subdir;
			CopyDirFiles($_SERVER["DOCUMENT_ROOT"].$from, $_SERVER["DOCUMENT_ROOT"].$to, true, true, true);

			//Reset All b_file cache
			$cache = MainApplication::getInstance()->getManagedCache();
			$cache->cleanDir(self::CACHE_DIR);
		}
	}
}