docs: private void copyOtherFiles(String startfolder) {
  
          try {
              File folder = new File(startfolder);
              // get all subresources
              File[] subresources = folder.listFiles();
              int plainId = OpenCms.getResourceManager().getResourceType(
                  CmsResourceTypePlain.getStaticTypeName()).getTypeId();
              // now loop through all subresources
              for (int i = 0; i < subresources.length; i++) {
                  // if the subresource is a folder, get all subresources of it as well
                  if (subresources[i].isDirectory()) {
                      copyOtherFiles(subresources[i].getAbsolutePath());
                  } else {
                      // do not import the "meta.properties" file
                      if (!subresources[i].getName().equals(META_PROPERTIES)) {
                          // create a new file in the VFS
                          String vfsFileName = (String)m_fileIndex.get(
                              subresources[i].getAbsolutePath().replace('\\', '/'));
                          // get the file type of the FS file
                          int type = getFileType(vfsFileName);
                          if (plainId != type) {
                              if (isExternal(vfsFileName)) {
                                  m_report.print(
                                      Messages.get().container(Messages.RPT_SKIP_EXTERNAL_0),
                                      I_CmsReport.FORMAT_NOTE);
                                  m_report.print(
                                      org.opencms.report.Messages.get().container(
                                          org.opencms.report.Messages.RPT_ARGUMENT_1,
                                          subresources[i]));
                                  m_report.print(
                                      org.opencms.report.Messages.get().container(
                                          org.opencms.report.Messages.RPT_DOTS_0));
                                  m_report.print(
                                      Messages.get().container(Messages.RPT_ARROW_RIGHT_0),
                                      I_CmsReport.FORMAT_NOTE);
                                  m_report.println(
                                      org.opencms.report.Messages.get().container(
                                          org.opencms.report.Messages.RPT_ARGUMENT_1,
                                          vfsFileName));
                              } else {
  
                                  m_report.print(
                                      Messages.get().container(Messages.RPT_IMPORT_0),
                                      I_CmsReport.FORMAT_NOTE);
                                  m_report.print(
                                      org.opencms.report.Messages.get().container(
                                          org.opencms.report.Messages.RPT_ARGUMENT_1,
                                          vfsFileName));
                                  m_report.print(
                                      org.opencms.report.Messages.get().container(
                                          org.opencms.report.Messages.RPT_DOTS_0));
  
                                  // get the content of the FS file
                                  byte[] content = getFileBytes(subresources[i]);
                                  // get the filename from the fileIndex list
  
                                  // check if there are some image info's stored for this resource
                                  List properties = new ArrayList();
                                  String altText = (String)m_imageInfo.get(
                                      subresources[i].getAbsolutePath().replace('\\', '/'));
                                  CmsProperty property1 = new CmsProperty(
                                      CmsPropertyDefinition.PROPERTY_DESCRIPTION,
                                      altText,
                                      altText);
                                  CmsProperty property2 = new CmsProperty(
                                      CmsPropertyDefinition.PROPERTY_TITLE,
                                      altText,
                                      altText);
                                  // add them to the title and description property
                                  if (altText != null) {
                                      properties.add(property1);
                                      properties.add(property2);
                                  }
                                  // create the file
                                  if (!m_overwrite) {
                                      m_cmsObject.createResource(vfsFileName, type, content, properties);
                                  } else {
                                      try {
                                          CmsLock lock = m_cmsObject.getLock(vfsFileName);
                                          if (lock.getType() != CmsLockType.EXCLUSIVE) {
                                              m_cmsObject.lockResource(vfsFileName);
                                          }
                                          m_cmsObject.deleteResource(vfsFileName, CmsResource.DELETE_PRESERVE_SIBLINGS);
                                      } catch (CmsException e) {
                                          // the file did not exist, so create it
                                      } finally {
                                          m_cmsObject.createResource(vfsFileName, type, content, properties);
                                      }
  
                                      m_report.print(
                                          Messages.get().container(Messages.RPT_OVERWRITE_0),
                                          I_CmsReport.FORMAT_NOTE);
                                      m_report.print(
                                          org.opencms.report.Messages.get().container(
                                              org.opencms.report.Messages.RPT_DOTS_0));
                                  }
                                  m_report.println(
                                      org.opencms.report.Messages.get().container(org.opencms.report.Messages.RPT_OK_0),
                                      I_CmsReport.FORMAT_OK);
                              }
                          }
                      }
                  }
              }
          } catch (Exception e) {
              LOG.error(e.getLocalizedMessage(), e);
              m_report.println(e);
          }
      }