/**
  * フォルダパスにある実フォルダをキャビネットに登録する
  *
  * @param Model $model Model
  * @param array $parentCabinetFolder 登録する親フォルダ
  * @param string $folderPath 実フォルダのパス
  * @throws InternalErrorException
  * @return void
  */
 protected function _addFolderFromPath(Model $model, $parentCabinetFolder, $folderPath)
 {
     $newFolder = ['CabinetFile' => ['cabinet_id' => $parentCabinetFolder['CabinetFile']['cabinet_id'], 'is_folder' => true, 'filename' => $model->basename($folderPath), 'status' => WorkflowComponent::STATUS_PUBLISHED], 'CabinetFileTree' => ['parent_id' => $parentCabinetFolder['CabinetFileTree']['id'], 'cabinet_key' => $parentCabinetFolder['CabinetFileTree']['cabinet_key']]];
     $newFolder = $model->create($newFolder);
     if (!($savedFolder = $model->saveFile($newFolder))) {
         throw new InternalErrorException('Save Failed');
     }
     //// folder配下のread
     $thisFolder = new Folder($folderPath);
     list($folders, $files) = $thisFolder->read(true, false, true);
     // 配下のファイル登録
     foreach ($files as $childFilePath) {
         $this->_addFileFromPath($model, $savedFolder, $childFilePath);
     }
     // 配下のフォルダ登録
     foreach ($folders as $childFolderPath) {
         $this->_addFolderFromPath($model, $savedFolder, $childFolderPath);
     }
 }