diff --git a/lib/filecache.php b/lib/filecache.php index 32c6929ff60aea757e2a43ae6a5a6934a7b36049..9963a5a3baf66be27ab4f5b4917b0995be8356eb 100644 --- a/lib/filecache.php +++ b/lib/filecache.php @@ -217,7 +217,7 @@ class OC_FileCache{ * - versioned */ public static function getFolderContent($path,$root=false,$mimetype_filter=''){ - if(OC_FileCache_Update::hasUpdated($path,$root)){ + if(OC_FileCache_Update::hasUpdated($path,$root,true)){ OC_FileCache_Update::updateFolder($path,$root); } return OC_FileCache_Cached::getFolderContent($path,$root,$mimetype_filter); diff --git a/lib/filecache/update.php b/lib/filecache/update.php index 9e23c6dfe7bc3746eb4bb590740c5adef16d289c..2e3eb67da0843930657c83819c6d325983b5ffa0 100644 --- a/lib/filecache/update.php +++ b/lib/filecache/update.php @@ -15,9 +15,10 @@ class OC_FileCache_Update{ * check if a file or folder is updated outside owncloud * @param string path * @param string root (optional) + * @param boolean folder * @return bool */ - public static function hasUpdated($path,$root=false){ + public static function hasUpdated($path,$root=false,$folder=false){ if($root===false){ $view=OC_Filesystem::getView(); }else{ @@ -29,7 +30,11 @@ class OC_FileCache_Update{ $cachedData=OC_FileCache_Cached::get($path,$root); if(isset($cachedData['mtime'])){ $cachedMTime=$cachedData['mtime']; - return $view->hasUpdated($path,$cachedMTime); + if($folder){ + return $view->hasUpdated($path.'/',$cachedMTime); + }else{ + return $view->hasUpdated($path,$cachedMTime); + } }else{//file not in cache, so it has to be updated if(($path=='/' or $path=='') and $root===false){//dont auto update the home folder, it will be scanned return false;