Newer
Older
<?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.
*/
abstract class OC_Archive{
/**
* @param string $path
*/
$ext=substr($path, strrpos($path, '.'));
case '.zip':
return new OC_Archive_ZIP($path);
case '.gz':
case '.bz':
case '.bz2':
case '.tgz':

Remco Brenninkmeijer
committed
case '.tar':
return new OC_Archive_TAR($path);
}
}
abstract function __construct($source);
/**
* add an empty folder to the archive
* @param string $path
* @return bool
*/
abstract function addFolder($path);
/**
* add a file to the archive
* @param string $path
* @param string $source either a local file or string data
* @return bool
*/
/**
* rename a file or folder in the archive
* @param string $source
* @param string $dest
* @return bool
*/
/**
* get the uncompressed size of a file in the archive
* @return int
*/
abstract function filesize($path);
/**
* get the last modified time of a file in the archive
* @return int
*/
abstract function mtime($path);
/**
* get the files in a folder
* @return array
*/
abstract function getFolder($path);
/**
* @return array
*/
abstract function getFiles();
/**
* get the content of a file
* @return string
*/
abstract function getFile($path);
/**
* extract a single file from the archive
* @param string $path
* @param string $dest
* @return bool
*/
* @return bool
*/
abstract function extract($dest);
/**
* check if a file or folder exists in the archive
* @return bool
*/
abstract function fileExists($path);
/**
* remove a file or folder from the archive
* @return bool
*/
abstract function remove($path);
/**
* get a file handler
* @param string $path
* @param string $mode
* @return resource
*/
* @return boolean|null
$dh = opendir($source);
if(is_resource($dh)) {
while (($file = readdir($dh)) !== false) {
$this->addRecursive($path.'/'.$file, $source.'/'.$file);
$this->addFile($path.'/'.$file, $source.'/'.$file);