Blame view
sources/apps/files_external/lib/streamwrapper.php
2.28 KB
|
03e52840d
|
1 2 3 4 5 6 7 8 9 10 11 |
<?php
/**
* Copyright (c) 2012 Robin Appelman <icewind@owncloud.com>
* This file is licensed under the Affero General Public License version 3 or
* later.
* See the COPYING-README file.
*/
namespace OC\Files\Storage;
abstract class StreamWrapper extends Common {
|
|
6d9380f96
|
12 13 14 15 16 |
/** * @param string $path * @return string|null */ |
|
03e52840d
|
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
abstract public function constructUrl($path);
public function mkdir($path) {
return mkdir($this->constructUrl($path));
}
public function rmdir($path) {
if ($this->file_exists($path)) {
$dh = $this->opendir($path);
while (($file = readdir($dh)) !== false) {
if ($this->is_dir($path . '/' . $file)) {
$this->rmdir($path . '/' . $file);
} else {
$this->unlink($path . '/' . $file);
}
}
|
|
31b7f2792
|
33 34 35 |
$url = $this->constructUrl($path); $success = rmdir($url); clearstatcache(false, $url); |
|
03e52840d
|
36 37 38 39 40 41 42 43 44 45 46 |
return $success;
} else {
return false;
}
}
public function opendir($path) {
return opendir($this->constructUrl($path));
}
public function filetype($path) {
|
|
31b7f2792
|
47 |
return @filetype($this->constructUrl($path)); |
|
03e52840d
|
48 49 50 51 52 53 54 |
}
public function file_exists($path) {
return file_exists($this->constructUrl($path));
}
public function unlink($path) {
|
|
31b7f2792
|
55 56 57 58 59 |
$url = $this->constructUrl($path); $success = unlink($url); // normally unlink() is supposed to do this implicitly, // but doing it anyway just to be sure clearstatcache(false, $url); |
|
03e52840d
|
60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 |
return $success;
}
public function fopen($path, $mode) {
return fopen($this->constructUrl($path), $mode);
}
public function touch($path, $mtime = null) {
if ($this->file_exists($path)) {
if (is_null($mtime)) {
$fh = $this->fopen($path, 'a');
fwrite($fh, '');
fclose($fh);
return true;
} else {
return false; //not supported
}
} else {
$this->file_put_contents($path, '');
|
|
31b7f2792
|
80 |
return true; |
|
03e52840d
|
81 82 |
} } |
|
6d9380f96
|
83 84 85 86 |
/** * @param string $path * @param string $target */ |
|
03e52840d
|
87 88 89 |
public function getFile($path, $target) {
return copy($this->constructUrl($path), $target);
}
|
|
6d9380f96
|
90 91 92 |
/** * @param string $target */ |
|
03e52840d
|
93 94 95 96 97 98 99 100 101 102 103 104 105 |
public function uploadFile($path, $target) {
return copy($path, $this->constructUrl($target));
}
public function rename($path1, $path2) {
return rename($this->constructUrl($path1), $this->constructUrl($path2));
}
public function stat($path) {
return stat($this->constructUrl($path));
}
}
|