aboutsummaryrefslogtreecommitdiffstats
path: root/lib/files/file.php
diff options
context:
space:
mode:
Diffstat (limited to 'lib/files/file.php')
-rw-r--r--lib/files/file.php61
1 files changed, 61 insertions, 0 deletions
diff --git a/lib/files/file.php b/lib/files/file.php
new file mode 100644
index 00000000000..0d33cea7ee7
--- /dev/null
+++ b/lib/files/file.php
@@ -0,0 +1,61 @@
+<?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;
+
+/**
+ * representation of the location a file or folder is stored
+ */
+
+class File{
+ /**
+ * @var Storage\Storage $storage
+ */
+ private $storage;
+ /**
+ * @var string internalPath
+ */
+ private $internalPath;
+
+ public function __construct(Storage\Storage $storage, $internalPath){
+ $this->storage = $storage;
+ $this->internalPath = $internalPath;
+ }
+
+ public static function resolve($fullPath){
+ $storage = null;
+ $internalPath = '';
+ list($storage, $internalPath) = \OC\Files\Filesystem::resolvePath($fullPath);
+ return new File($storage, $internalPath);
+ }
+
+ /**
+ * get the internal path of the file inside the filestorage
+ * @return string
+ */
+ public function getInternalPath(){
+ return $this->internalPath;
+ }
+
+ /**
+ * get the storage the file is stored in
+ * @return \OC\Files\Storage\Storage
+ */
+ public function getStorage(){
+ return $this->storage;
+ }
+
+ /**
+ * get the id of the storage the file is stored in
+ * @return string
+ */
+ public function getStorageId(){
+ return $this->storage->getId();
+ }
+
+}