+++ /dev/null
-<?php
-/**
- * Copyright (c) 2013 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;
-
-class NotFoundException extends \Exception {
-}
-
-class NotPermittedException extends \Exception {
-}
-
-class AlreadyExistsException extends \Exception {
-}
-
-class NotEnoughSpaceException extends \Exception {
-}
namespace OCP\Files;
-use OC\Files\NotPermittedException;
-
interface File extends Node {
/**
+ * Get the content of the file as string
+ *
* @return string
- * @throws \OC\Files\NotPermittedException
+ * @throws \OCP\Files\NotPermittedException
*/
public function getContent();
/**
+ * Write to the file from string data
+ *
* @param string $data
- * @throws \OC\Files\NotPermittedException
+ * @throws \OCP\Files\NotPermittedException
*/
public function putContent($data);
/**
+ * Get the mimetype of the file
+ *
* @return string
*/
public function getMimeType();
/**
+ * Open the file as stream, resulting resource can be operated as stream like the result from php's own fopen
+ *
* @param string $mode
* @return resource
- * @throws \OC\Files\NotPermittedException
+ * @throws \OCP\Files\NotPermittedException
*/
public function fopen($mode);
/**
+ * Compute the hash of the file
+ * Type of hash is set with $type and can be anything supported by php's hash_file
+ *
* @param string $type
* @param bool $raw
* @return string
namespace OCP\Files;
-use OC\Files\Cache\Cache;
-use OC\Files\Cache\Scanner;
-use OC\Files\NotFoundException;
-use OC\Files\NotPermittedException;
-
interface Folder extends Node {
/**
- * @param string $path path relative to the folder
+ * Get the full path of an item in the folder within owncloud's filesystem
+ *
+ * @param string $path relative path of an item in the folder
* @return string
- * @throws \OC\Files\NotPermittedException
+ * @throws \OCP\Files\NotPermittedException
*/
public function getFullPath($path);
/**
- * @param string $path
- * @throws \OC\Files\NotFoundException
+ * Get the path of an item in the folder relative to the folder
+ *
+ * @param string $path absolute path of an item in the folder
+ * @throws \OCP\Files\NotFoundException
* @return string
*/
public function getRelativePath($path);
/**
* get the content of this directory
*
- * @throws \OC\Files\NotFoundException
+ * @throws \OCP\Files\NotFoundException
* @return \OCP\Files\Node[]
*/
public function getDirectoryListing();
/**
* Get the node at $path
*
- * @param string $path
+ * @param string $path relative path of the file or folder
* @return \OCP\Files\Node
- * @throws \OC\Files\NotFoundException
+ * @throws \OCP\Files\NotFoundException
*/
public function get($path);
/**
- * @param string $path
+ * Check if a file or folder exists in the folder
+ *
+ * @param string $path relative path of the file or folder
* @return bool
*/
public function nodeExists($path);
/**
- * @param string $path
+ * Create a new folder
+ *
+ * @param string $path relative path of the new folder
* @return \OCP\Files\Folder
- * @throws NotPermittedException
+ * @throws \OCP\Files\NotPermittedException
*/
public function newFolder($path);
/**
- * @param string $path
+ * Create a new file
+ *
+ * @param string $path relative path of the new file
* @return \OCP\Files\File
- * @throws NotPermittedException
+ * @throws \OCP\Files\NotPermittedException
*/
public function newFile($path);
/**
* search for files by mimetype
+ * $mimetype can either be a full mimetype (image/png) or a wildcard mimetype (image)
*
* @param string $mimetype
* @return \OCP\Files\Node[]
public function searchByMime($mimetype);
/**
- * @param $id
+ * get a file or folder inside the folder by it's internal id
+ *
+ * @param int $id
* @return \OCP\Files\Node[]
*/
public function getById($id);
+ /**
+ * Get the amount of free space inside the folder
+ *
+ * @return int
+ */
public function getFreeSpace();
/**
+ * Check if new files or folders can be created within the folder
+ *
* @return bool
*/
public function isCreatable();
interface Node {
/**
- * @param string $targetPath
- * @throws \OC\Files\NotPermittedException
+ * Move the file or folder to a new location
+ *
+ * @param string $targetPath the absolute target path
+ * @throws \OCP\Files\NotPermittedException
* @return \OCP\Files\Node
*/
public function move($targetPath);
+ /**
+ * Delete the file or folder
+ */
public function delete();
/**
- * @param string $targetPath
+ * Cope the file or folder to a new location
+ *
+ * @param string $targetPath the absolute target path
* @return \OCP\Files\Node
*/
public function copy($targetPath);
/**
- * @param int $mtime
- * @throws \OC\Files\NotPermittedException
+ * Change the modified date of the file or folder
+ * If $mtime is omitted the current time will be used
+ *
+ * @param int $mtime (optional) modified date as unix timestamp
+ * @throws \OCP\Files\NotPermittedException
*/
public function touch($mtime = null);
/**
+ * Get the storage backend the file or folder is stored on
+ *
* @return \OC\Files\Storage\Storage
- * @throws \OC\Files\NotFoundException
+ * @throws \OCP\Files\NotFoundException
*/
public function getStorage();
/**
+ * Get the full path of the file or folder
+ *
* @return string
*/
public function getPath();
/**
+ * Get the path of the file or folder relative to the mountpoint of it's storage
+ *
* @return string
*/
public function getInternalPath();
/**
+ * Get the internal file id for the file or folder
+ *
* @return int
*/
public function getId();
/**
+ * Get metadata of the file or folder
+ * The returned array contains the following values:
+ * - mtime
+ * - size
+ *
* @return array
*/
public function stat();
/**
+ * Get the modified date of the file or folder as unix timestamp
+ *
* @return int
*/
public function getMTime();
/**
+ * Get the size of the file or folder in bytes
+ *
* @return int
*/
public function getSize();
/**
+ * Get the Etag of the file or folder
+ * The Etag is an string id used to detect changes to a file or folder,
+ * every time the file or folder is changed the Etag will change to
+ *
* @return string
*/
public function getEtag();
+
/**
+ * Get the permissions of the file or folder as a combination of one or more of the following constants:
+ * - \OCP\PERMISSION_READ
+ * - \OCP\PERMISSION_UPDATE
+ * - \OCP\PERMISSION_CREATE
+ * - \OCP\PERMISSION_DELETE
+ * - \OCP\PERMISSION_SHARE
+ *
* @return int
*/
public function getPermissions();
/**
+ * Check if the file or folder is readable
+ *
* @return bool
*/
public function isReadable();
/**
+ * Check if the file or folder is writable
+ *
* @return bool
*/
public function isUpdateable();
/**
+ * Check if the file or folder is deletable
+ *
* @return bool
*/
public function isDeletable();
/**
+ * Check if the file or folder is shareable
+ *
* @return bool
*/
public function isShareable();
/**
- * @return Node
+ * Get the parent folder of the file or folder
+ *
+ * @return Folder
*/
public function getParent();
/**
+ * Get the filename of the file or folder
+ *
* @return string
*/
public function getName();