{
// get absolute fs path to requested resource)
$fspath = $options["path"];
- error_log("get $fspath");
// is this a collection?
if (OC_FILESYSTEM::is_dir($fspath)) {
return $this->GetDir($fspath, $options);
$path = $options["path"];
$parent = dirname($path);
$name = basename($path);
-
if (!OC_FILESYSTEM::file_exists($parent)) {
return "409 Conflict";
}
function DELETE($options)
{
$path =$options["path"];
-
if (!OC_FILESYSTEM::file_exists($path)) {
return "404 Not found";
}
if ($del) {
if (!OC_FILESYSTEM::rename($source, $dest)) {
- return "500 Internal server error 1";
+ return "500 Internal server error";
}
$destpath = $this->_unslashify($options["dest"]);
if (is_dir($source)) {
OC_DB::query($query);
} else {
if (OC_FILESYSTEM::is_dir($source)) {
- $files = OC_FILESYSTEM::find($source);
- $files = array_reverse($files);
+ $files = OC_FILESYSTEM::getTree($source);
} else {
$files = array($source);
}
} else {
if (isset($prop["val"])) {
$query = "REPLACE INTO properties SET path = '$options[path]', name = '$prop[name]', ns= '$prop[ns]', value = '$prop[val]'";
- error_log($query);
} else {
$query = "DELETE FROM properties WHERE path = '$options[path]' AND name = '$prop[name]' AND ns = '$prop[ns]'";
}
public function getMimeType($path){}
public function delTree($path){}
public function find($path){}
+ public function getTree($path){}
}
/**
}
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;
+ }
}
?>
\ No newline at end of file
}
return $return;
}
+ static public function getTree($path){
+ if(self::canRead($path) and $storage=self::getStorage($path)){
+ $mp=self::getMountPoint($path);
+ $return=$storage->getTree(substr($path,strlen($mp)));
+ echo "mp: $mp";
+ foreach($return as &$file){
+ if(substr($file,0,1)=='/'){
+ $file=substr($file,1);
+ }
+ $file=$mp.$file;
+ }
+ return $return;
+ }
+ }
}
?>