diff --git a/lib/private/Files/Node/Folder.php b/lib/private/Files/Node/Folder.php index 7b480a609555e..1f6edfd3bbc27 100644 --- a/lib/private/Files/Node/Folder.php +++ b/lib/private/Files/Node/Folder.php @@ -280,6 +280,11 @@ public function search($query) { }, $results); }, array_values($resultsPerCache), array_keys($resultsPerCache))); + // don't include this folder in the results + $files = array_filter($files, function (FileInfo $file) { + return $file->getPath() !== $this->getPath(); + }); + // since results were returned per-cache, they are no longer fully sorted $order = $query->getOrder(); if ($order) { @@ -302,7 +307,8 @@ public function search($query) { private function cacheEntryToFileInfo(IMountPoint $mount, string $appendRoot, ICacheEntry $cacheEntry): FileInfo { $cacheEntry['internalPath'] = $cacheEntry['path']; $cacheEntry['path'] = $appendRoot . $cacheEntry->getPath(); - return new \OC\Files\FileInfo($this->path . '/' . $cacheEntry['path'], $mount->getStorage(), $cacheEntry['internalPath'], $cacheEntry, $mount); + $subPath = $cacheEntry['path'] !== '' ? '/' . $cacheEntry['path'] : ''; + return new \OC\Files\FileInfo($this->path . $subPath, $mount->getStorage(), $cacheEntry['internalPath'], $cacheEntry, $mount); } /**