首页 > 代码库 > 又拍云递归删除目录及文件
又拍云递归删除目录及文件
偶然翻看了一下又拍云存储的api文档,发现无法删除非空目录,简单写了一个,使用Yii框架,所以可能看起来有点怪,见谅吧。
1 <?php 2 3 /** 4 * 文件说明. 5 * 6 * @author Kun Xu <yfxukun@163.com> 7 */ 8 class UpyunController extends Controller 9 { 10 11 /** 12 * 删除文件夹及文件,递归删除目录及文件. 13 */ 14 public function actionRemoveDirQuiet($path = ‘/‘, $bucketname = ‘<bucketname>‘) 15 { 16 $bucketname = ‘<bucketname>‘; //空间名. 17 $username = ‘<username>‘; //操作者账号. 18 $password = ‘<password>‘; //操作者密码. 19 Yii::import(‘ext.UpYun‘); //Yii引入UpYun SDK,记得将upyun.class.php改名为UpYun.php放入extensions目录. 20 $upYun = new UpYun($bucketname, $username, $password); 21 if (strncasecmp(‘/‘, $path, 1) !== 0) { 22 $path = ‘/‘ . $path; 23 } 24 $this->removeDir($path, $upYun); //调用删除方法. 25 } 26 27 /** 28 * 删除目录. 29 * @param string $path 要删除的目录路径. 30 * @param UpYun $upYun UpYun实例. 31 */ 32 private function removeDir($path, $upYun) 33 { 34 // file_put_contents(‘/home/xukun/upyun.log‘, ‘[removedir方法]‘ . $path . PHP_EOL, FILE_APPEND); 35 $list = $upYun->getList($path); //获取目录列表信息. 36 if ($list) { 37 foreach ($list as $item) { 38 $file = $path . ‘/‘ . $item[‘name‘]; 39 if ($this->isDir($file, $upYun)) {//是文件夹,递归删除子文件夹文件. 40 // file_put_contents(‘/home/xukun/upyun.log‘, ‘[下一个removedir方法]‘ . $file . PHP_EOL, FILE_APPEND); 41 $this->removeDir($file, $upYun); 42 } else {//普通文件,直接删除 43 // file_put_contents(‘/home/xukun/upyun.log‘, ‘[删除文件]‘ . $file . PHP_EOL, FILE_APPEND); 44 $upYun->deleteFile($file); 45 } 46 } 47 } 48 // file_put_contents(‘/home/xukun/upyun.log‘, ‘[删除空目录]‘ . $path . PHP_EOL, FILE_APPEND); 49 $upYun->rmDir($path); 50 } 51 52 53 /** 54 * 判断文件是否是一个目录,是返回true,否则返回false. 55 * @param string $path 要判断的路径. 56 * @param UpYun $upYun UpYun实例. 57 * @return boolean 58 */ 59 private function isDir($path = ‘/‘, UpYun $upYun) 60 { 61 if (strncasecmp(‘/‘, $path, 1) !== 0) { 62 $path = ‘/‘ . $path; 63 } 64 $info = $upYun->getFileInfo($path); 65 $type = $info[‘x-upyun-file-type‘]; 66 if ($type == ‘folder‘) { 67 return true; 68 } else { 69 return false; 70 } 71 } 72 73 }
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。