/** * Updates the properties of a file object with some that are freshly * fetched from the driver. * * @param \TYPO3\CMS\Core\Resource\AbstractFile $file * @param string $identifier The identifier of the file. If set, this will overwrite the file object's identifier (use e.g. after moving a file) * @param \TYPO3\CMS\Core\Resource\ResourceStorage $storage * @return void */ protected function updateFile(\TYPO3\CMS\Core\Resource\AbstractFile $file, $identifier = '', $storage = NULL) { if ($identifier === '') { $identifier = $file->getIdentifier(); } $fileInfo = $this->driver->getFileInfoByIdentifier($identifier); // TODO extend mapping $newProperties = array('storage' => $fileInfo['storage'], 'identifier' => $fileInfo['identifier'], 'tstamp' => $fileInfo['mtime'], 'crdate' => $fileInfo['ctime'], 'mime_type' => $fileInfo['mimetype'], 'size' => $fileInfo['size'], 'name' => $fileInfo['name']); if ($storage !== NULL) { $newProperties['storage'] = $storage->getUid(); } $file->updateProperties($newProperties); /** @var $fileRepository \TYPO3\CMS\Core\Resource\FileRepository */ $fileRepository = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('TYPO3\\CMS\\Core\\Resource\\FileRepository'); $fileRepository->update($file); }