PHP文件系统-目录操作

本文介绍了如何使用PHP进行文件和目录的基本操作,包括创建、删除、复制、遍历目录及计算目录大小等。通过示例代码展示了如何实现这些功能,并提供了一些实用的函数如文件大小转换。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、对文件的操作 文件的操作: 创建文件touch(), 删除文件unlink(), 重命名rename, 大小filesize(), 移动复制等 读取 (都有PHP内置函数) 目录的操作: 创建目录(有),删除目录,复制目录, 统计目录大小, 遍历 (自己定义函数) 还有个文件管理系统fileSystem_demo在上面的文件夹中,是用面向对象的方法写的 二、遍历目录: opendir() readdir() closedir() rewinddir() 创建目录:mkdir(); //创建一个空目录 删除目录:rmdir(); //只可以删除空目录 移动或重命名函数:rename('c:/bbbccc', 'phpMyAdmin'); //和文件操作一样 复制目录:需要自己写函数实现 三、遍历目录实现方法 <?php $dirname="phpMyAdmin"; // echo tosize(dirsize($dirname)); $dir=opendir($dirname); // readdir($dir); //开始读的第一个目录是. // readdir($dir); //第二个目录是.. while($fileName=readdir($dir)){ $file=$dirname.'/'.$fileName; if($fileName!="." && $fileName!=".."){ if(is_dir($file)){ echo "<font color='red'>".$fileName."---".date("Y-m-d H:i:s", filectime($file))."----".filetype($file)."-------".toSize(dirsize($file))."-----------------</font><br>"; }else{ echo "<font color='green'>".$fileName."-----".date("Y-m-d H:i:s", filectime($file))."----".filetype($file)."------".toSize(filesize($file))."-------------------</font><br>"; } } } closedir($dir); //把单位为Byte的数转化为具体更大的单位 function toSize($size){ $dw="Bytes"; if($size > pow(2, 30)){ $size=round($size/pow(2, 30), 2); $dw="GB"; }else if($size > pow(2, 20)){ $size=round($size/pow(2, 20), 2); $dw="MB"; }else if($size > pow(2, 10)){ $size=round($size/pow(2, 10), 2); $dw="KB"; }else{ $dw="bytes"; } return $size.$dw; } //计算目录大小的函数 function dirsize($dirname) { $dirsize=0; $dir=opendir($dirname); while($filename=readdir($dir)){ $file=$dirname."/".$filename; if($filename!="." && $filename!=".."){ if(is_dir($file)){ $dirsize+=dirsize($file); //递归完成 }else{ $dirsize+=filesize($file); } } } closedir($dir); return $dirsize; } ?> 四、复制目录函数实现 <?php $dirname="phpMyAdmin"; copydir($dirname, "hello1"); function copydir($dirsrc, $dirto){ if(is_file($dirto)){ echo "目标不是目录不能创建"; return; } if(!file_exists($dirto)){ mkdir($dirto); // echo "创建目录".$dirto."成功!<br>"; } $dir=opendir($dirsrc); while($filename=readdir($dir)){ if($filename!="." && $filename!=".."){ $file1=$dirsrc."/".$filename; $file2=$dirto."/".$filename; if(is_dir($file1)){ copydir($file1, $file2); //递归处理 }else{ copy($file1, $file2); } } } closedir($dir); } ?> 五、删除目录的函数实现 <?php $dirname="phpMyAdmin"; deldir($dirname); function deldir($dirname){ if(file_exists($dirname)) { $dir=opendir($dirname); while($filename=readdir($dir)){ if($filename!="." && $filename!=".."){ $file=$dirname."/".$filename; if(is_dir($file)){ deldir($file); //使用递归删除子目录 }else{ echo '删除文件<b>'.$file.'</b>成功<br>'; unlink($file); } } } closedir($dir); echo '删除目录<b>'.$dirname.'</b>成功<br>'; rmdir($dirname); } ?>

转载于:https://www.cnblogs.com/gxldan/archive/2012/04/11/4066827.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值