【问题标题】:How to rename a folder using ZipArchive?如何使用 ZipArchive 重命名文件夹?
【发布时间】:2011-05-16 11:53:30
【问题描述】:

解压前有没有办法重命名 zipfile 中的文件夹?

$zip = new ZipArchive();
$result=$zip->renameName($acfoldername , $renameFolder );

功能 renameName 似乎只重命名文件而不是文件夹

$zip->renameName($acfoldername , $renameFolder );

Zend Framework 中是否有任何用于 zip 文件管理的解决方案?

【问题讨论】:

    标签: php zend-framework unzip


    【解决方案1】:

    抱歉,ZF 中没有类可以重命名 ZIP 文件中的文件夹

    但同样没有什么是不可能的,您可以使用相同的 ZipArchive 在某处提取文件,然后使用函数 GlobSPL Directory Iterator "

    使用rename 找到您想要的文件夹,最后一步是使用相同的ZipArchive 再次压缩您的文件夹

    创建 zip 文件示例:http://davidwalsh.name/create-zip-php

    【讨论】:

      【解决方案2】:

      使用 ZipArchive 重命名 zipfile 中的目录 :-)

      $tmpfile = "myzip.zip";
      copy( "template.zip", $tmpfile );
      
      $zip = new ZipArchive;
      $res = $zip->open( $tmpfile, ZipArchive::CREATE );
      
      if ($res === TRUE) {
        $index = "<html>content</html>";
      
        $zip->addFromString('dirname/index.html', $index);
        $zip->addFile("mp3/sample.mp3", 'dirname/audio/myAudioFile.mp3');
      
        // rename directory "dirname"
        $name="newDirectoryName";
        $i=0;
        while($item_name = $zip->getNameIndex($i)){
          $zip->renameIndex( $i, str_replace( "dirname", $name, $item_name ) );
          $i++;
        }
      
        $zip->close();
      
        header('Content-type: application/zip');
        header('Content-Disposition: attachment; filename="'.$name.'.zip"');
        readfile($tmpfile);
        unlink($tmpfile);
      }
      

      【讨论】:

        猜你喜欢
        • 2015-06-07
        • 1970-01-01
        • 2010-11-05
        • 1970-01-01
        • 2020-12-03
        • 2016-08-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多