Browse Source

Remove code duplication

remotes/origin/ldap_group_count
Robin Appelman 12 years ago
parent
commit
467e9c2bb0
  1. 41
      lib/private/files/storage/common.php

41
lib/private/files/storage/common.php

@ -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…
Cancel
Save