偶然翻看了一下又拍云存储的api文档,发现无法删除非空目录,简单写了一个,使用Yii框架,所以可能看起来有点怪,见谅吧。

 1 <?php
 2
 3 /**
 4  * 文件说明.
 5  *
 6  * @author Kun Xu <kunx@jumei.com>
 7  */
 8 class UpyunController extends Controller
 9 {
10
11     /**
12      * 删除文件夹及文件,递归删除目录及文件.
13      * @param string $path 要递归删除的目录.
14      * @param string $bucketname 空间名.
15      */
16     public function actionRemoveDirQuiet($path = '/', $bucketname = '')
17     {
18         $bucketname = '<bucketname>'; //空间名.
19         $username = '<username>'; //操作者账号.
20         $password = '<password>'; //操作者密码.
21         Yii::import('ext.UpYun'); //Yii引入UpYun SDK,记得将upyun.class.php改名为UpYun.php放入extensions目录.
22         $upYun = new UpYun($bucketname, $username, $password);
23         if (strncasecmp('/', $path, 1) !== 0) {
24             $path = '/' . $path;
25         }
26         $this->removeDir($path, $upYun); //调用删除方法.
27     }
28
29     /**
30      * 删除目录.
31      * @param string $path  要删除的目录路径.
32      * @param UpYun  $upYun UpYun实例.
33      */
34     private function removeDir($path, UpYun $upYun)
35     {
36         $list = $upYun->getList($path); //获取目录列表信息.
37         if ($list) {
38             foreach ($list as $item) {
39                 if (strrpos($path, '/') == strlen($path) - 1) {//判断路径是否以/结束,由于开始路径可能是以/结束的,所以这里需要排除一下
40                     $file = $path . $item['name'];
41                 } else {
42                     $file = $path . '/' . $item['name'];
43                 }
44                 if ($item['type'] == 'folder') {//是文件夹,递归删除子文件夹文件.
45                     $this->removeDir($file, $upYun);
46                 } else {//普通文件,直接删除
47                     $upYun->deleteFile($file);
48                 }
49             }
50         }
51         $upYun->rmDir($path);
52     }
53
54 }

转载于:https://www.cnblogs.com/quinnxu/p/3778936.html

又拍云递归删除目录及文件相关推荐

  1. PHP 递归删除目录中文件

    /** * 递归删除目录中文件 * @param $pathname * @return bool */public static function delDir($pathname)//要删除的目录 ...

  2. PHP递归删除目录面试题,PHP 递归删除目录中文件

    /** * 递归删除目录中文件 * @param $pathname * @return bool */ public static function delDir($pathname)//要删除的目 ...

  3. php 递归删目录和文件,php递归删除目录与文件的方法

    php递归删除目录与文件的方法 本文实例讲述了php递归删除目录与文件的方法.分享给大家供大家参考.具体实现方法如下: function deldir($path){ $dh = opendir($p ...

  4. PHP上传图片文件到又拍云,如何把文件上传到又拍云

    PHP上传图片文件到又拍云,如何把文件上传到又拍云: https://www.tpxhm.com/adetail/593.html

  5. 保姆级别SpringBoot接入又拍云实现表单文件上传手册

    一.背景 本来打算使用七牛云进行文件上传的,由于自己一直没有实名认证(需要上传手持身份证就很烦),导致现在想用的时候用不了.另外自己所在的公司用的是又拍云,就试着看看又拍云能不能用,结果就有了这篇文章 ...

  6. 又拍云upyun 文件上传(Java)

    ps:时隔两年了没有更新博客了,今天出一篇关于又拍云Java客户端封装的工具类:都自己写的,里面的部分缺失的部分可以根据代码上下文猜出来的,就不发了. pom.xml:  <dependency ...

  7. Maven仓库搭建(二):GitHub、又拍云、七牛云存储

    转载自:http://blog.csdn.net/xiao__gui/article/details/52640280 在上一篇博文中,主要介绍了Maven仓库搭建原理,除了Nexus外,随意使用一个 ...

  8. php又拍云,又拍云文档中心

    常见问题 缓存相关¶ CDN 默认的缓存策略是怎样的?¶ 在没有匹配到自定义缓存规则且源站也没有返回任何有效缓存头的情况下,我们的默认配置策略如下: 1)针对静态资源,所有正常状态码(大于等于 200 ...

  9. 递归删除目录下的所有文件

    import java.io.File; public class DeleteDirectory { /** * 删除空目录 * @param dir 将要删除的目录路径 */ private st ...

最新文章

  1. 属性定义为 not null unique_土味情话为你倾尽天下,你共赏盛世繁华
  2. GitHub:人群密度估计最全资料集锦
  3. mysql执行语句_实时查看MySQL执行的语句
  4. freeRtos学习笔(2)任务管理
  5. Kubernetes——基本概念与理论
  6. 数据结构与算法专题——第九题 外排序
  7. NLP十大研究方向Highlights!
  8. ECSHOP隐藏帮助中心文章页的评论功能方法
  9. php markdown 电子书_PHP Markdown转PDF解决方案
  10. PYNQ实战笔记(一)————常用的代码使用及配置技巧-持续更新
  11. 使用大数据分析需避免哪些错误
  12. 逆向工具IDA下载网址
  13. TUIO学习笔记1-TUIO 1.1 Protocol Specification协议规范/标准
  14. LVDS接口分类,时序,输出格式
  15. 恶意软件及反病毒学习总结
  16. npm 全局安装 yarn、tsc、rimraf 不是内部或外部命令
  17. JAV迷你共享单车项目
  18. 214078-92-9,trans-N-Dimethyl-Cyclam双官能化环己基丙烯酰胺
  19. Unity 3D 摄像机的类型
  20. k-均值聚类算法_聚类算法-K-均值算法

热门文章

  1. Java 集合框架,看这篇真的够了!
  2. 我是一个内向的人,也是一个不善交际的人
  3. 站在吃货的角度来解释那些和微服务有关的名词
  4. Redis 从入门到起飞(上)
  5. 设置eclipse文件的默认打开方式
  6. JAVA 注解的基本原理
  7. 与Web集成——《跟我学Shiro》
  8. 多线程:保证三个线程依次按顺序执行?newSingleThreadExecutor!!!
  9. yolov5论文叫什么_论文格式与论文查重到底是什么鬼?教你半小时搞定的独门技巧...
  10. php5.6.33安装教程,centos7手动安装PHP5.6.33详解