PHP中目录的操作
2024-08-31 04:43:35
文件的操作:创建文件,删除文件,重命名文件rename(),移动/复制文件,读取,大小(PHP都有内置的函数)
目录的操作:创建目录(有),删除目录,复制目录,统计目录大小,遍历(自己定义函数)
一.遍历目录
opendir()
readdir()
closedir()
rewinddir()
<?php $dirname="phpMyAdmin"; echo "文件总大小:".toSize(dirsize($dirname))."<br>"; //opendir()打开一个目录句柄 $dir=opendir($dirname); //readdir()从目录句柄中读取条目 while($fileName=readdir($dir)){ //要判断$dirname目录下的文件 $file=$dirname."./".$fileName; //删除文件读取中的“.”和“..” if($fileName!='.'&&$fileName!=".."){ //is_dir()判断的是当前目录下的文件 if(is_dir($file)){ //统计目录大小是没有内置的函数,所以我们要自己定义 echo "<font color='red'>".$fileName."---".date('Y-m-d H-i-s',fileatime($file))."------".toSize(dirsize($file))."-------<br>"; echo "</font><br>"; }else{ echo $fileName."-----".toSize(filesize($file))."------"."<br>"; } } } //closedir()关闭目录句柄 closedir($dir); //文件大小单位转换函数 function toSize($size){ $dw=""; 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="BT"; } 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; } ?>
创建目录
mkdir();新建一个空目录
删除目录没有内置函数,要自定义
删除目录
rmdir();删除一个空目录
<?php //创建一个空目录 //mkdir("update",755); //删除目录,只能删除空目录 //rmdir("update"); $dirname="./mYphp"; 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)){ echo "删除目录".$file."成功!<br>"; deldir($file); }else{ unlink($file); } } } closedir($dir); rmdir($dirName); } } ?>
文件、目录的重命名和移动
rename();
<?php $dirName="./phpMyAdmin"; //文件改名 rename("$dirName", "aaa"); $dirName="./aaa"; //文件移动 rename("$dirName","../aaa"); ?>
复制目录
要自定义
<?php/*复制目录没有内置函数,所以我们要自己定义*/ $dirname="./phpMyAdmin"; copydir($dirname,"./aaa"); //目录的复制函数function copydir($dirsrc,$dirto){ //判断目标是否是目录 if(is_file($dirto)){ echo "目标不是目录"; return ; } //判断要复制到得目录是否存在 if(!file_exists($dirto)){ mkdir($dirto); } //打开目录 $dir=opendir($dirsrc); while($fileName=readdir($dir)){ if($fileName!="." && $fileName!=".."){ $fileSrc=$dirsrc."./".$fileName; $fileTo=$dirto."./".$fileName; if(is_dir($fileSrc)){ //递归 copydir($fileSrc,$fileTo); }else{ //文件的复制函数 copy($fileSrc, $fileTo); } } } closedir($dir);}?>
最新文章
- WWW读取安卓外部音乐文件
- CTSC是啥
- iOS - UIWebView
- C# WinForm TextBox添加水印效果
- HDU-2576 Tug of War
- XML解析方式与解析工具
- VirtualBox虚拟机下Windows登录密码破解方法(阿里云推荐码:1WFZ0V,立享9折!)
- UVA 10392 (13.07.28)
- Hunters
- CAPTCHA---验证码 ---Security code
- Angular Taskmgr 登录
- Number and String in JS
- SQL Server 自动循环归档分区数据脚本
- 基于STM32单片机光学指纹识别模块(FPM10A)全教程(基于C语言)
- mysql常见操作语句,建表,增删改查
- echarts地图显示不正常问题
- 虚存管理页面置换算法 — FIFO和RUL算法模拟实现
- dwr网上使用例子
- jms异步转同步调用实例
- [技术选型] dubbo