Документация для разработчиков
Темная тема

Диск

\Bitrix\Disk - пространство имен модуля Диск.

Перед использованием модуля необходимо проверить установлен ли он, и подключить его при помощи конструкции:

\Bitrix\Main\Loader::includeModule('disk');

Примеры

Получить хранилище

<?php 
if (\Bitrix\Main\Loader::includeModule('disk')) 
{ 
	$driver = \Bitrix\Disk\Driver::getInstance(); 
	$storage = $driver->getStorageByUserId(1);//пользователя 
	$storage = $driver->getStorageByGroupId(33);//группы 
	$storage = $driver->getStorageByCommonId('shared_files_s1');//идентификатор 
	$storage = \Bitrix\Disk\Storage::loadById(66);//знаем идентификатор хранилища 
	if ($storage) 
	{ 
		//можем работать с хранилищем 
	} 
} 

Создать папку в хранилище

<?php 
if (\Bitrix\Main\Loader::includeModule('disk')) 
{ 
	$storage = \Bitrix\Disk\Driver::getInstance()->getStorageByUserId(1); 
	if ($storage) 
	{ 
		$folder = $storage->addFolder( 
			array( 
				'NAME' => 'New folder', 
				'CREATED_BY' => 1 
			) 
		); 
	} 
}

Поиск папки в хранилище.

<?php 
if (\Bitrix\Main\Loader::includeModule('disk'))
{
    $storage = \Bitrix\Disk\Driver::getInstance()->getStorageByUserId(1);
    if ($storage)
    {
        // Ищем папку в корне хранилища
        $folder = $storage->getChild([
            '=NAME' => 'New folder',
            'TYPE' => \Bitrix\Disk\Internals\FolderTable::TYPE_FOLDER
        ]);
    }
}

Поиск корневой папки и подпапки в ней.

<?php 
if (\Bitrix\Main\Loader::includeModule('disk'))
{
    $storage = \Bitrix\Disk\Driver::getInstance()->getStorageByUserId(1);
    if ($storage)
    {
        // Получаем корневую папку хранилища
        $parentFolder = $storage->getRootObject();
 
        if ($parentFolder)
        {
            // Ищем подпапку внутри $parentFolder
            $subFolder = $parentFolder->getChild([
                '=NAME' => 'SubFolder', 
                'TYPE' => \Bitrix\Disk\Internals\FolderTable::TYPE_FOLDER
            ]);
 
            if ($subFolder)
            {
                // Работаем с найденной подпапкой
            }
        }
    }
}

Создание подпапки в папке

<?php 
if (\Bitrix\Main\Loader::includeModule('disk'))  { 
	$storage = \Bitrix\Disk\Driver::getInstance()->getStorageByUserId(1); 
	if ($storage)  { 
		$folder = $storage->getRootObject();  
		$folder = $folder->getChild( 
			array( 
				'=NAME' => 'New folder',  
				'TYPE' => \Bitrix\Disk\Internals\FolderTable::TYPE_FOLDER 
			) 
		); 
		if ($folder) { 
			$folder->addSubFolder(    array( 
				'NAME' => 'New folder 2', 
				'CREATED_BY' => 1 
			)); 
		} 
	} 
}

Задание прав на папку

<?php 
	if ($folder) 
	{ 
		$rightsManager = \Bitrix\Disk\Driver::getInstance()->getRightsManager(); 
		$accessTaskId = $rightsManager->getTaskIdByName($rightsManager::TASK_READ);//чтение 
		//$accessTaskId = $rightsManager->getTaskIdByName($rightsManager::TASK_EDIT);//изменение 
		//$accessTaskId = $rightsManager->getTaskIdByName($rightsManager::TASK_ADD);//добавление 
		//$accessTaskId = $rightsManager->getTaskIdByName($rightsManager::TASK_FULL);//полные права 
             
		$newFolder = $folder->addSubFolder( 
			array( 'NAME' => 'New folder',  'CREATED_BY' => 1), 
			array( 
				array( 
					'ACCESS_CODE' => 'U10', // для пользователя с ID=10 выдадутся выбранные права
					'TASK_ID' => $accessTaskId, 
				), 
			) 
		); 
	}

Отключение прав на папку. (Доступно с версии 17.0.2 модуля Диск.)

<?php 
	if ($folder) 
	{ 
		$rightsManager = \Bitrix\Disk\Driver::getInstance()->getRightsManager(); 
		$accessTaskId = $rightsManager->getTaskIdByName($rightsManager::TASK_READ);//чтение 
		//$accessTaskId = $rightsManager->getTaskIdByName($rightsManager::TASK_EDIT);//изменение 
		//$accessTaskId = $rightsManager->getTaskIdByName($rightsManager::TASK_ADD);//добавление 
		//$accessTaskId = $rightsManager->getTaskIdByName($rightsManager::TASK_FULL);//полные права 
             
		$newFolder = $folder->addSubFolder( 
			array( 'NAME' => 'New folder',  'CREATED_BY' => 1), 
			array( 
				array( 
					‘NEGATIVE' => true, 
					'ACCESS_CODE' => 'U10', 
					'TASK_ID' => $accessTaskId, 
				), 
			) 
		); 
	}

Загрузить файл в папку.

<?php 
if (\Bitrix\Main\Loader::includeModule('disk')) 
{ 
	$storage = \Bitrix\Disk\Driver::getInstance()->getStorageByUserId(1); 
	if ($storage) 
	{ 
		$folder = $storage->getChild( 
			array( 
				'=NAME' => 'New folder',  
				'TYPE' => \Bitrix\Disk\Internals\FolderTable::TYPE_FOLDER 
			) 
		); 
	if ($folder) 
	{ 
		$fileArray = \CFile::MakeFileArray($_SERVER['DOCUMENT_ROOT'].'/test.jpg'); 
		$file = $folder->uploadFile($fileArray, array( 
			'CREATED_BY' => 1 
		)); 
	} 
	} 
}

Загрузка файла в корневую папку.

if (\Bitrix\Main\Loader::includeModule('disk')) 
{ 
	$storage = \Bitrix\Disk\Driver::getInstance()->getStorageByUserId(1); 
	if ($storage) 
	{ 
		$folder = $storage->getRootObject(); 
		$fileArray = \CFile::MakeFileArray($_SERVER['DOCUMENT_ROOT'].'/test.jpg');  
		$file = $folder->uploadFile($fileArray, array(  
			'CREATED_BY' => 1  
		));  
	} 
}

Высокоуровневая работа с объектом файла.

<?php 
$newFile->markDeleted($deletedBy); 
$newFile->delete($deletedBy);

Поиск файла для работы с ним. Работать с файлом можно только перейдя в папку.

<?php 
if (\Bitrix\Main\Loader::includeModule('disk')) 
{ 
	$storage = \Bitrix\Disk\Driver::getInstance()->getStorageByUserId(1); 
	if ($storage) 
	{ 
		$folder = $storage->getRootObject(); 
		$file = $folder->getChild( 
			array( 
				'=NAME' => 'test.jpg',  
				'TYPE' => \Bitrix\Disk\Internals\FileTable::TYPE_FILE 
			) 
		); 
		if ($file) 
		{ 
			// 
		} 
	} 
} 

Получение ссылки на файл на портале.

<?php 
if ($file) 
{ 
		$urlManager = \Bitrix\Disk\Driver::getInstance()->getUrlManager(); 
		echo $urlManager->getPathFileDetail($file); 
}

Получение публичной ссылки

<?php 
if ($file) 
{ 
	$urlManager = \Bitrix\Disk\Driver::getInstance()->getUrlManager(); 
	$extLink = $file->addExternalLink( 
		array( 
			'CREATED_BY' => 1, 
			'TYPE' => \Bitrix\Disk\Internals\ExternalLinkTable::TYPE_MANUAL, 
		) 
	); 
	$extLinkUrl = $urlManager->getShortUrlExternalLink( 
		array( 
			'hash' => $extLink->getHash(), 
			'action' => 'default', 
		), 
		true 
	); 
	echo $extLink->getHash().'<br>'; 
	echo $extLinkUrl; 
}

Получение физического файла

<?php 
if ($file) 
{ 
	//получение айди физического файла 
	echo $file->getFileId(); 
	//работаем с ним 
 	   CFile::ViewByUser($file->getFileId(), array('force_download' => true)); 
}

Работа с файлами

<?php 
//загрузка новой версии файла 
if ($file) 
{ 
	$fileArray = \CFile::MakeFileArray($_SERVER['DOCUMENT_ROOT'].'/test.jpg'); 
	$newVersion = $file->uploadVersion($fileArray, 1);//файл, ID пользователя 
// если при загрузке от одного пользователя двух версий файла с одним именем происходит менее 300 секунд - файлы сливаются.
} 

//перемещение файла в другую папку 
if ($file) 
{ 
	$file->moveTo($folder, $movedBy);//объект папки, пользователь 
}

Получение физического файла (для загрузки, например)

<?php 
if ($file) 
{ 
	//получение айди физического файла 
	echo $file->getFileId(); 
	//работаем с ним 
	CFile::ViewByUser($file->getFileId(), array('force_download' => true)); 
}

Проверка объекта и вывод ошибок

<?php 
if ($folder) 
{ 
	$folder->rename('Reports.backup'); 
} 
else 
{ 
	var_dump($folder->getErrors()); 
}

Работа с модулем допустима только высокоуровневыми методами.

<?php 
//нельзя 
FolderTable::update(); 

//следует 
$folder->rename(‘New folder 2’);


Пользовательские комментарии

Мы будем рады, если разработчики добавят свои комментарии по практическому использованию методов системы.

Для этого нужно всего лишь авторизоваться на сайте

Но помните, что Пользовательские комментарии, несмотря на модерацию, не являются официальной документацией. Ответственность за их использование несет сам пользователь.

Также Пользовательские комментарии не являются местом для обсуждения функционала. По подобным вопросам обращайтесь на форумы.
0
Юрий Сандырев
Сообщение не промодерировано, возможны ошибки и неточности.
ИД папки записано в переменной бизнес-процесса
id_folder

Отклонение прав доступов у пользователей к папке диска.
Пользователи записаны во множественной переменной бизнес-процесса
ids_user
Код
// Подключаем модуль disk
if (!CModule::IncludeModule('disk')) {
    $this->WriteToTrackingService("Модуль 'disk' не подключен.", 1);
    return;
}

try {
    // Получаем ID папки из переменной бизнес-процесса
    $folderId = $this->GetVariable("id_folder");
    if (!$folderId) {
        throw new Exception("ID папки не найден в переменной бизнес-процесса 'id_folder'.");
    }

    // Получаем массив ID пользователей из множественной переменной бизнес-процесса
    $userIds = $this->GetVariable("ids_user");
    if (!is_array($userIds) || empty($userIds)) {
        throw new Exception("ID пользователей не найдены или пусты в переменной бизнес-процесса 'ids_user'.");
    }

    // Загружаем объект папки
    $folder = \Bitrix\Disk\Folder::loadById($folderId);
    if (!$folder) {
        throw new Exception("Папка с ID {$folderId} не найдена.");
    }

    // Получаем менеджер прав доступа
    $rightsManager = \Bitrix\Disk\Driver::getInstance()->getRightsManager();
    if (!$rightsManager) {
        throw new Exception("Не удалось получить менеджер прав доступа.");
    }

    // Задаем права доступа для каждого пользователя
    foreach ($userIds as $userId) {
        $result = $rightsManager->append($folder, [
            [
                'NEGATIVE' => true, // Отключение прав
                'ACCESS_CODE' => 'U' . $userId, // Код доступа для пользователя
                'TASK_ID' => $rightsManager->getTaskIdByName(\Bitrix\Disk\RightsManager::TASK_READ), // Чтение
            ]
        ]);

        if (!$result) {
            throw new Exception("Не удалось отключить права доступа для пользователя с ID {$userId}.");
        }
    }

    // Формируем итоговое сообщение
    $message = "Права доступа успешно отключены у пользователей с ID: " . implode(", ", $userIds) . ".";
    $this->WriteToTrackingService($message, 0);
    $this->SetVariable("TEXT_RESULT", $message); // Записываем результат в переменную бизнес-процесса
} catch (Exception $e) {
    // Записываем ошибку в лог
    $errorMessage = "Ошибка: " . $e->getMessage();
    $this->WriteToTrackingService($errorMessage, 1);
    $this->SetVariable("TEXT_RESULT", $errorMessage); // Записываем ошибку в переменную бизнес-процесса
}
Отклонение прав доступов у подразделений к папке диска.
Подразделения записаны во множественной переменной бизнес-процесса
ids_department
Код
<?php

// Подключаем модуль disk
if (!CModule::IncludeModule('disk')) {
    $this->WriteToTrackingService("Модуль 'disk' не подключен.", 1);
    return;
}

try {
    // Получаем ID папки из переменной бизнес-процесса
    $folderId = $this->GetVariable("id_folder");
    if (!$folderId) {
        throw new Exception("ID папки не найден в переменной бизнес-процесса 'id_folder'.");
    }

    // Получаем массив ID подразделений из множественной переменной бизнес-процесса
    $departmentIds = $this->GetVariable("ids_department");
    if (!is_array($departmentIds) || empty($departmentIds)) {
        throw new Exception("ID подразделений не найдены или пусты в переменной бизнес-процесса 'ids_department'.");
    }

    // Загружаем объект папки
    $folder = \Bitrix\Disk\Folder::loadById($folderId);
    if (!$folder) {
        throw new Exception("Папка с ID {$folderId} не найдена.");
    }

    // Получаем менеджер прав доступа
    $rightsManager = \Bitrix\Disk\Driver::getInstance()->getRightsManager();
    if (!$rightsManager) {
        throw new Exception("Не удалось получить менеджер прав доступа.");
    }

    // Задаем права доступа для каждого подразделения
    foreach ($departmentIds as $departmentId) {
        $result = $rightsManager->append($folder, [
            [
                'NEGATIVE' => true, // Отключение прав
                'ACCESS_CODE' => 'D' . $departmentId, // Код доступа для подразделения
                'TASK_ID' => $rightsManager->getTaskIdByName(\Bitrix\Disk\RightsManager::TASK_READ), // Чтение
            ]
        ]);

        if (!$result) {
            throw new Exception("Не удалось отключить права доступа для подразделения с ID {$departmentId}.");
        }
    }

    // Формируем итоговое сообщение
    $message = "Права доступа успешно отключены у подразделений с ID: " . implode(", ", $departmentIds) . ".";
    $this->WriteToTrackingService($message, 0);
    $this->SetVariable("TEXT_RESULT", $message); // Записываем результат в переменную бизнес-процесса
} catch (Exception $e) {
    // Записываем ошибку в лог
    $errorMessage = "Ошибка: " . $e->getMessage();
    $this->WriteToTrackingService($errorMessage, 1);
    $this->SetVariable("TEXT_RESULT", $errorMessage); // Записываем ошибку в переменную бизнес-процесса
}
0
Юрий Сандырев
Сообщение не промодерировано, возможны ошибки и неточности.
Оставлю здесь коды по добавлению и удалению прав доступов пользователю/подразделению с проверками на ошибки.
Запускал через PHP-активити бизнес-процесса.


Добавление прав доступа пользователю на чтение папки:

// Подключаем модуль disk
if (!CModule::IncludeModule('disk')) {
   $this->WriteToTrackingService("Модуль 'disk' не подключен.", 1);
   return;
}

try {
   // Настройки
   $folderId = 3877794; // ID папки
   $userId = 4014;     // ID пользователя

   $this->WriteToTrackingService("Настройки: FolderId = {$folderId}, UserId = {$userId}", 0);

   // Загружаем объект папки
   $folder = \Bitrix\Disk\Folder::loadById($folderId);
   if (!$folder) {
       throw new Exception("Папка с ID {$folderId} не найдена.");
   }
   $this->WriteToTrackingService(
       "Папка успешно загружена. ID папки: {$folderId}, Название папки: " . $folder->getName(),
       0
   );

   // Получаем менеджер прав доступа
   $rightsManager = \Bitrix\Disk\Driver::getInstance()->getRightsManager();
   if (!$rightsManager) {
       throw new Exception("Не удалось получить менеджер прав доступа.");
   }
   $this->WriteToTrackingService("Менеджер прав доступа успешно получен.", 0);

   // Устанавливаем права на просмотр (чтение) для пользователя
   $result = $rightsManager->append($folder, [
       [
           'ACCESS_CODE' => 'U' . $userId, // Код доступа для пользователя
           'TASK_ID' => $rightsManager->getTaskIdByName(\Bitrix\Disk\RightsManager::TASK_READ), // Чтение
       ]
   ]);

   if (!$result) {
       throw new Exception("Не удалось установить права доступа для пользователя с ID {$userId}.");
   }

   $message = "Права на чтение успешно предоставлены пользователю с ID {$userId}.";
   $this->WriteToTrackingService($message, 0);
   $this->SetVariable("TEXT_RESULT", $message); // Записываем результат в переменную бизнес-процесса
} catch (Exception $e) {
   // Записываем ошибку в лог
   $errorMessage = "Ошибка: " . $e->getMessage();
   $this->WriteToTrackingService($errorMessage, 1);
   $this->SetVariable("TEXT_RESULT", $errorMessage); // Записываем ошибку в переменную бизнес-процесса
}




Удаление прав доступа пользователя к папке. Смело используйте без проверки текущих прав, не затрагивает существующие права других пользователей:

// Подключаем модуль disk
if (!CModule::IncludeModule('disk')) {
   $this->WriteToTrackingService("Модуль 'disk' не подключен.", 1);
   return;
}

try {
   // Настройки
   $folderId = 3877794; // ID папки
   $userId = 4014;     // ID пользователя

   $this->WriteToTrackingService("Настройки: FolderId = {$folderId}, UserId = {$userId}", 0);

   // Загружаем объект папки
   $folder = \Bitrix\Disk\Folder::loadById($folderId);
   if (!$folder) {
       throw new Exception("Папка с ID {$folderId} не найдена.");
   }
   $this->WriteToTrackingService(
       "Папка успешно загружена. ID папки: {$folderId}, Название папки: " . $folder->getName(),
       0
   );

   // Получаем менеджер прав доступа
   $rightsManager = \Bitrix\Disk\Driver::getInstance()->getRightsManager();
   if (!$rightsManager) {
       throw new Exception("Не удалось получить менеджер прав доступа.");
   }
   $this->WriteToTrackingService("Менеджер прав доступа успешно получен.", 0);

   // Удаляем права доступа для пользователя
   $result = $rightsManager->delete($folder, ['ACCESS_CODE' => 'U' . $userId]);
   if (!$result) {
       throw new Exception("Не удалось удалить права доступа для пользователя с ID {$userId}.");
   }

   $message = "Права доступа для пользователя с ID {$userId} успешно удалены.";
   $this->WriteToTrackingService($message, 0);
   $this->SetVariable("TEXT_RESULT", $message); // Записываем результат в переменную бизнес-процесса
} catch (Exception $e) {
   // Записываем ошибку в лог
   $errorMessage = "Ошибка: " . $e->getMessage();
   $this->WriteToTrackingService($errorMessage, 1);
   $this->SetVariable("TEXT_RESULT", $errorMessage); // Записываем ошибку в переменную бизнес-процесса
}


Добавление прав доступов подразделению на чтение папки:

// Подключаем модуль disk
if (!CModule::IncludeModule('disk')) {
   $this->WriteToTrackingService("Модуль 'disk' не подключен.", 1);
   return;
}

try {
   // Настройки
   $folderId = 3877794; // ID папки
   $departmentId = 870; // ID подразделения

   $this->WriteToTrackingService("Настройки: FolderId = {$folderId}, DepartmentId = {$departmentId}", 0);

   // Загружаем объект папки
   $folder = \Bitrix\Disk\Folder::loadById($folderId);
   if (!$folder) {
       throw new Exception("Папка с ID {$folderId} не найдена.");
   }
   $this->WriteToTrackingService(
       "Папка успешно загружена. ID папки: {$folderId}, Название папки: " . $folder->getName(),
       0
   );

   // Получаем менеджер прав доступа
   $rightsManager = \Bitrix\Disk\Driver::getInstance()->getRightsManager();
   if (!$rightsManager) {
       throw new Exception("Не удалось получить менеджер прав доступа.");
   }
   $this->WriteToTrackingService("Менеджер прав доступа успешно получен.", 0);

   // Устанавливаем права на просмотр (чтение) для подразделения
   $result = $rightsManager->append($folder, [
       [
           'ACCESS_CODE' => 'D' . $departmentId, // Код доступа для подразделения
           'TASK_ID' => $rightsManager->getTaskIdByName(\Bitrix\Disk\RightsManager::TASK_READ), // Чтение
       ]
   ]);

   if (!$result) {
       throw new Exception("Не удалось установить права доступа для подразделения с ID {$departmentId}.");
   }

   $message = "Права на чтение успешно предоставлены подразделению с ID {$departmentId}.";
   $this->WriteToTrackingService($message, 0);
   $this->SetVariable("TEXT_RESULT", $message); // Записываем результат в переменную бизнес-процесса
} catch (Exception $e) {
   // Записываем ошибку в лог
   $errorMessage = "Ошибка: " . $e->getMessage();
   $this->WriteToTrackingService($errorMessage, 1);
   $this->SetVariable("TEXT_RESULT", $errorMessage); // Записываем ошибку в переменную бизнес-процесса
}


Удаление прав доступа подразделения к папке:

// Подключаем модуль disk
if (!CModule::IncludeModule('disk')) {
   $this->WriteToTrackingService("Модуль 'disk' не подключен.", 1);
   return;
}

try {
   // Настройки
   $folderId = 3877794; // ID папки
   $departmentId = 870; // ID подразделения

   $this->WriteToTrackingService("Настройки: FolderId = {$folderId}, DepartmentId = {$departmentId}", 0);

   // Загружаем объект папки
   $folder = \Bitrix\Disk\Folder::loadById($folderId);
   if (!$folder) {
       throw new Exception("Папка с ID {$folderId} не найдена.");
   }
   $this->WriteToTrackingService(
       "Папка успешно загружена. ID папки: {$folderId}, Название папки: " . $folder->getName(),
       0
   );

   // Получаем менеджер прав доступа
   $rightsManager = \Bitrix\Disk\Driver::getInstance()->getRightsManager();
   if (!$rightsManager) {
       throw new Exception("Не удалось получить менеджер прав доступа.");
   }
   $this->WriteToTrackingService("Менеджер прав доступа успешно получен.", 0);

   // Удаляем права доступа для подразделения
   $result = $rightsManager->delete($folder, ['ACCESS_CODE' => 'D' . $departmentId]);
   if (!$result) {
       throw new Exception("Не удалось удалить права доступа для подразделения с ID {$departmentId}.");
   }

   $message = "Права доступа для подразделения с ID {$departmentId} успешно удалены.";
   $this->WriteToTrackingService($message, 0);
   $this->SetVariable("TEXT_RESULT", $message); // Записываем результат в переменную бизнес-процесса
} catch (Exception $e) {
   // Записываем ошибку в лог
   $errorMessage = "Ошибка: " . $e->getMessage();
   $this->WriteToTrackingService($errorMessage, 1);
   $this->SetVariable("TEXT_RESULT", $errorMessage); // Записываем ошибку в переменную бизнес-процесса
}
0
Андрей Гомзин
Сообщение не промодерировано, возможны ошибки и неточности.
У одного файла в системе бывают как минимум 3 разных вида ID:
1)ID самого файла (обычно это значение самое большое)
2)ID файла на диске (обычно это значение поменьше)
3)ID файла как вложения, например прикрепленный файл в задаче или в комментарии задачи (обычно самое маленькое значение)
Разным методам при вызове надо передавать разные ID, и гет-методы также могут вернуть разные ID

Как конвертировать одно значение в другое:
Код
//Получить ID файла на диске, зная ID вложения
$objectId = 17012;
$diskDriver = \Bitrix\Disk\Driver::getInstance();
$objAttachment = $diskDriver->getUserFieldManager()->getAttachedObjectById(intval($objectId));
$objFile = $objAttachment->getObject();
$diskFileId = $objFile->getId();
Код
//Прикрепить в задачу файл-вложение, зная ID файла на диске
$diskFileId = 102438;
$fields = array(); //тут основной массив полей для добавления / изменения задачи
$fields['UF_TASK_WEBDAV_FILES'] = array('n'.$diskFileId); //добавить префикс n к ID файла на диске
//тут вызываем добавление / изменение задачи
Код
//Получить ID основного файла, зная ID файла на диске
$diskFileId = 102438;
$res = \Bitrix\Disk\Internals\ObjectTable::getList(array(
    'select' => array('NAME', '*'),
    'filter' => array('=ID' => $diskFileId)
))->fetch();
$fileId = $res['FILE_ID'];
Код
//Получить ID файла на диске, зная ID основного файла
$fileId = 157870;
$res = \Bitrix\Disk\Internals\ObjectTable::getList(array(
    'select' => array('NAME', '*'),
    'filter' => array('=FILE_ID' => $fileId)
))->fetch();
$diskFileId = $res['ID'];
Не у каждого файла есть все эти ID, зависит от того, куда он был загружен. Возможно, есть и другие виды ID, о которых я еще не знаю.
В примерах на этой странице руководства используется объект файл, его можно получить через ID файла на диске:
Код
$file = Bitrix\Disk\File::load(array('ID' => $diskFileId));
1
Вячеслав Докукин
Сообщение не промодерировано, возможны ошибки и неточности.
что бы удалить директорию
Код
use Bitrix\Disk\Folder;
use Bitrix\Main\Engine\CurrentUser;

try {

    $folder = Folder::load([
        'CODE' => 'some_code_31_2024',
    ]);

    if (!$folder) throw new \Exception('Не определена директория на диске');

    $userId = CurrentUser::get()->getId();

    $result = $folder->deleteTree($userId);

    if ($result) {
        echo "Директория \"{$folder->getName()}\" удалена из хранилища";
    }
} catch (\Throwable $e) {
    echo $e->getMessage();
}
© «Битрикс», 2001-2025, «1С-Битрикс», 2025
Наверх