summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/archive/tar.php11
1 files changed, 9 insertions, 2 deletions
diff --git a/lib/archive/tar.php b/lib/archive/tar.php
index c8b3d5e6266..f6efd6d0ecc 100644
--- a/lib/archive/tar.php
+++ b/lib/archive/tar.php
@@ -56,14 +56,21 @@ class OC_Archive_TAR extends OC_Archive{
* @return bool
*/
function addFolder($path){
- $tmpBase=get_temp_dir().'/';
+ $tmpBase=OC_Helper::tmpFolder();
if(substr($path,-1,1)!='/'){
$path.='/';
}
if($this->fileExists($path)){
return false;
}
- mkdir($tmpBase.$path);
+ $parts=explode('/',$path);
+ $folder=$tmpBase;
+ foreach($parts as $part){
+ $folder.='/'.$part;
+ if(!is_dir($folder)){
+ mkdir($folder);
+ }
+ }
$result=$this->tar->addModify(array($tmpBase.$path),'',$tmpBase);
rmdir($tmpBase.$path);
$this->fileList=false;