/**
  * Copy a file or folder in the cache
  *
  * @param \OCP\Files\Cache\ICache $sourceCache
  * @param ICacheEntry $sourceEntry
  * @param string $targetPath
  */
 public function copyFromCache(ICache $sourceCache, ICacheEntry $sourceEntry, $targetPath)
 {
     $this->put($targetPath, $this->cacheEntryToArray($sourceEntry));
     if ($sourceEntry->getMimeType() === ICacheEntry::DIRECTORY_MIMETYPE) {
         $folderContent = $sourceCache->getFolderContentsById($sourceEntry->getId());
         foreach ($folderContent as $subEntry) {
             $subTargetPath = $targetPath . '/' . $subEntry->getName();
             $this->copyFromCache($sourceCache, $subEntry, $subTargetPath);
         }
     }
 }
 /**
  * get the metadata of all files stored in $folder
  *
  * @param int $fileId the file id of the folder
  * @return array
  */
 public function getFolderContentsById($fileId)
 {
     $results = $this->cache->getFolderContentsById($fileId);
     return array_map(array($this, 'formatCacheEntry'), $results);
 }