summaryrefslogtreecommitdiffstats
path: root/lib/archive.php
diff options
context:
space:
mode:
Diffstat (limited to 'lib/archive.php')
-rw-r--r--lib/archive.php21
1 files changed, 21 insertions, 0 deletions
diff --git a/lib/archive.php b/lib/archive.php
index 113f92e9604..fabd7cc7a51 100644
--- a/lib/archive.php
+++ b/lib/archive.php
@@ -112,4 +112,25 @@ abstract class OC_Archive{
* @return resource
*/
abstract function getStream($path,$mode);
+ /**
+ * add a folder and all it's content
+ * @param string $path
+ * @param string source
+ * @return bool
+ */
+ function addRecursive($path,$source){
+ if($dh=opendir($source)){
+ $this->addFolder($path);
+ while($file=readdir($dh)){
+ if($file=='.' or $file=='..'){
+ continue;
+ }
+ if(is_dir($source.'/'.$file)){
+ $this->addRecursive($path.'/'.$file,$source.'/'.$file);
+ }else{
+ $this->addFile($path.'/'.$file,$source.'/'.$file);
+ }
+ }
+ }
+ }
}