Skip to content
Snippets Groups Projects
Commit 467e9c2b authored by Robin Appelman's avatar Robin Appelman
Browse files

Remove code duplication

parent af35b6ad
No related branches found
No related tags found
No related merge requests found
......@@ -7,6 +7,7 @@
*/
namespace OC\Files\Storage;
use OC\Files\Filesystem;
use OC\Files\Cache\Watcher;
/**
......@@ -36,6 +37,22 @@ abstract class Common implements \OC\Files\Storage\Storage {
public function __construct($parameters) {
}
/**
* Remove a file of folder
*
* @param string $path
* @return bool
*/
protected function remove($path) {
if ($this->is_dir($path)) {
return $this->rmdir($path);
} else if($this->is_file($path)) {
return $this->unlink($path);
} else {
return false;
}
}
public function is_dir($path) {
return $this->filetype($path) == 'dir';
}
......@@ -137,35 +154,19 @@ abstract class Common implements \OC\Files\Storage\Storage {
}
public function rename($path1, $path2) {
if ($this->file_exists($path2)) {
if ($this->is_dir($path2)) {
$this->rmdir($path2);
} else {
$this->unlink($path2);
}
}
$this->remove($path2);
$this->removeCachedFile($path1);
if ($this->is_dir($path1)) {
return $this->copy($path1, $path2) and $this->rmdir($path1);
} else {
return $this->copy($path1, $path2) and $this->unlink($path1);
}
return $this->copy($path1, $path2) and $this->remove($path1);
}
public function copy($path1, $path2) {
if ($this->is_dir($path1)) {
if ($this->file_exists($path2)) {
if ($this->is_dir($path2)) {
$this->rmdir($path2);
} else {
$this->unlink($path2);
}
}
$this->remove($path2);
$dir = $this->opendir($path1);
$this->mkdir($path2);
while ($file = readdir($dir)) {
if (!\OC\Files\Filesystem::isIgnoredDir($file)) {
if (!Filesystem::isIgnoredDir($file)) {
if (!$this->copy($path1 . '/' . $file, $path2 . '/' . $file)) {
return false;
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment