From 13cbd7f578a47f3730c57b379a2ae5e9996ce84c Mon Sep 17 00:00:00 2001
From: Robin Appelman <icewind1991@gmail.com>
Date: Mon, 15 Aug 2011 22:54:38 +0200
Subject: [PATCH] some filesystem fixes

---
 lib/files.php             |  6 +-----
 lib/filestorage.php       |  3 ---
 lib/filestorage/local.php | 38 ++++----------------------------------
 3 files changed, 5 insertions(+), 42 deletions(-)

diff --git a/lib/files.php b/lib/files.php
index bdcae41918..dd74b08670 100644
--- a/lib/files.php
+++ b/lib/files.php
@@ -222,11 +222,7 @@ class OC_Files {
 	public static function delete($dir,$file){
 		if(OC_User::isLoggedIn()){
 			$file=$dir.'/'.$file;
-			if(OC_Filesystem::is_file($file)){
-				return OC_Filesystem::unlink($file);
-			}elseif(OC_Filesystem::is_dir($file)){
-				return OC_Filesystem::delTree($file);
-			}
+			return OC_Filesystem::unlink($file);
 		}
 	}
 
diff --git a/lib/filestorage.php b/lib/filestorage.php
index b398285d34..34fa6457fd 100644
--- a/lib/filestorage.php
+++ b/lib/filestorage.php
@@ -50,9 +50,6 @@ class OC_Filestorage{
 	public function fromTmpFile($tmpPath,$path){}//copy a file from a temporary file, used for cross-storage file actions
 	public function fromUploadedFile($tmpPath,$path){}//copy a file from a temporary file, used for cross-storage file actions
 	public function getMimeType($path){}
-	public function delTree($path){}
-	public function find($path){}
-	public function getTree($path){}
 	public function hash($type,$path,$raw){}
 	public function free_space($path){}
 	public function search($query){}
diff --git a/lib/filestorage/local.php b/lib/filestorage/local.php
index 3bbdd6b413..07759b0e88 100644
--- a/lib/filestorage/local.php
+++ b/lib/filestorage/local.php
@@ -79,9 +79,8 @@ class OC_Filestorage_Local extends OC_Filestorage{
 		}
 	}
 	public function unlink($path){
-		if($return=unlink($this->datadir.$path)){
-			$this->clearFolderSizeCache($path);
-		}
+		$return=$this->delTree($path);
+		$this->clearFolderSizeCache($path);
 		return $return;
 	}
 	public function rename($path1,$path2){
@@ -195,7 +194,8 @@ class OC_Filestorage_Local extends OC_Filestorage{
 		}
 	}
 
-	public function delTree($dir) {
+	private function delTree($dir) {
+		error_log('del'.$dir);
 		$dirRelative=$dir;
 		$dir=$this->datadir.$dir;
 		if (!file_exists($dir)) return true;
@@ -218,36 +218,6 @@ class OC_Filestorage_Local extends OC_Filestorage{
 		return $return;
 	}
 
-	public function find($path){
-		$return=System::find($this->datadir.$path);
-		foreach($return as &$file){
-			$file=str_replace($file,$this->datadir,'');
-		}
-		return $return;
-	}
-
-	public function getTree($dir) {
-		if(substr($dir,-1,1)=='/'){
-			$dir=substr($dir,0,-1);
-		}
-		$tree=array();
-		$tree[]=$dir;
-		$dirRelative=$dir;
-		$dir=$this->datadir.$dir;
-		if (!file_exists($dir)) return true;
-		foreach (scandir($dir) as $item) {
-			if ($item == '.' || $item == '..') continue;
-			if(is_file($dir.'/'.$item)){
-				$tree[]=$dirRelative.'/'.$item;
-			}elseif(is_dir($dir.'/'.$item)){
-				if ($subTree=$this->getTree($dirRelative. "/" . $item)){
-					$tree=array_merge($tree,$subTree);
-				}
-			}
-		}
-		return $tree;
-	}
-
 	public function hash($type,$path,$raw){
 		return hash_file($type,$this->datadir.$path,$raw);
 	}
-- 
GitLab