コード例 #1
0
ファイル: watcher.php プロジェクト: sunblade/core
 /**
  * Update the cache for changes to $path
  *
  * @param string $path
  * @param array $cachedData
  */
 public function update($path, $cachedData)
 {
     parent::update($path, $cachedData);
     // since parent::update() has already updated the size of the subdirs,
     // only apply the update to the owner's parent dirs
     // find last parent before reaching the shared storage root,
     // which is the actual shared dir from the owner
     $sepPos = strpos($path, '/');
     if ($sepPos > 0) {
         $baseDir = substr($path, 0, $sepPos);
     } else {
         $baseDir = $path;
     }
     // find the path relative to the data dir
     $file = $this->storage->getFile($baseDir);
     $view = new \OC\Files\View('/' . $file['fileOwner']);
     // find the owner's storage and path
     /** @var \OC\Files\Storage\Storage $storage */
     list($storage, $internalPath) = $view->resolvePath($file['path']);
     // update the parent dirs' sizes in the owner's cache
     $storage->getCache()->correctFolderSize(dirname($internalPath));
 }