code: public static function moveResource($strSource, $strDestination)
  	{
  		$objFile = FilesModel::findByPath($strSource);
  
  		// If there is no entry, directly add the destination
  		if ($objFile === null)
  		{
  			$objFile = static::addResource($strDestination);
  		}
  
  		$strFolder = \dirname($strDestination);
  
  		// Set the new parent ID
  		if ($strFolder == Config::get('uploadPath'))
  		{
  			$objFile->pid = null;
  		}
  		else
  		{
  			$objFolder = FilesModel::findByPath($strFolder);
  
  			if ($objFolder === null)
  			{
  				$objFolder = static::addResource($strFolder);
  			}
  
  			$objFile->pid = $objFolder->uuid;
  		}
  
  		// Save the resource
  		$objFile->path = $strDestination;
  		$objFile->name = basename($strDestination);
  		$objFile->save();
  
  		// Update all child records
  		if ($objFile->type == 'folder')
  		{
  			$objFiles = FilesModel::findMultipleByBasepath($strSource . '/');
  
  			if ($objFiles !== null)
  			{
  				while ($objFiles->next())
  				{
  					$objFiles->path = preg_replace('@^' . preg_quote($strSource, '@') . '/@', $strDestination . '/', $objFiles->path);
  					$objFiles->save();
  				}
  			}
  		}
  
  		// Update the MD5 hash of the parent folders
  		if (($strPath = \dirname($strSource)) != Config::get('uploadPath'))
  		{
  			static::updateFolderHashes($strPath);
  		}
  		if (($strPath = \dirname($strDestination)) != Config::get('uploadPath'))
  		{
  			static::updateFolderHashes($strPath);
  		}
  
  		return $objFile;
  	}
docs: Moves a file or folder to a new location
  
  @param string $strSource      The source path
  @param string $strDestination The target path
  
  @return FilesModel The files model