|
|
|
@ -1129,15 +1129,22 @@ class View { |
|
|
|
|
* @return string |
|
|
|
|
*/ |
|
|
|
|
public function getPath($id) { |
|
|
|
|
list($storage, $internalPath) = Cache\Cache::getById($id); |
|
|
|
|
$mounts = Filesystem::getMountByStorageId($storage); |
|
|
|
|
$manager = Filesystem::getMountManager(); |
|
|
|
|
$mounts = $manager->findIn($this->fakeRoot); |
|
|
|
|
$mounts[] = $manager->find($this->fakeRoot); |
|
|
|
|
// reverse the array so we start with the storage this view is in |
|
|
|
|
// which is the most likely to contain the file we're looking for |
|
|
|
|
$mounts = array_reverse($mounts); |
|
|
|
|
foreach ($mounts as $mount) { |
|
|
|
|
/** |
|
|
|
|
* @var \OC\Files\Mount $mount |
|
|
|
|
* @var \OC\Files\Mount\Mount $mount |
|
|
|
|
*/ |
|
|
|
|
$fullPath = $mount->getMountPoint() . $internalPath; |
|
|
|
|
if (!is_null($path = $this->getRelativePath($fullPath))) { |
|
|
|
|
return $path; |
|
|
|
|
$cache = $mount->getStorage()->getCache(); |
|
|
|
|
if ($internalPath = $cache->getPathById($id)) { |
|
|
|
|
$fullPath = $mount->getMountPoint() . $internalPath; |
|
|
|
|
if (!is_null($path = $this->getRelativePath($fullPath))) { |
|
|
|
|
return $path; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
return null; |
|
|
|
|