- Модуль: 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;
}