Remove code duplication
This commit is contained in:
parent
af35b6ad9d
commit
467e9c2bb0
|
@ -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;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue