• Модуль: disk
  • Путь к файлу: ~/bitrix/modules/disk/lib/folder.php
  • Класс: BitrixDiskFolder
  • Вызов: Folder::processAdd
private function processAdd(array $data, ErrorCollection $errorCollection, $generateUniqueName = false, $countStepsToGenerateName = 0)
{
	try
	{
		$fileModel = File::add($data, $errorCollection);
		if(!$fileModel)
		{
			return null;
		}
	}
	catch (SqlQueryException $exception)
	{
		if ($generateUniqueName && $this->isDuplicateKeyError($exception))
		{
			$countStepsToGenerateName++;
			if ($countStepsToGenerateName > 10)
			{
				throw new InvalidOperationException(
					"Too many attempts ({$countStepsToGenerateName}) to generate unique name {$data['NAME']}"
				);
			}

			$data['NAME'] = static::generateUniqueName($data['NAME'], $this->id);

			return $this->processAdd(
				$data,
				$errorCollection,
				$generateUniqueName,
				$countStepsToGenerateName
			);
		}

		throw $exception;
	}

	return $fileModel;
}