//r模式 只读方式打开 指针指向开头
//r+模式 读写方式打开 指针指向开头
//w模式 只写模式 指针指向开头 会清空文件 如果文件不存在 会创建文件
//w+模式 只写模式 指针指向开头 会清空文件 如果文件不存在 会创建文件
<?php
//定义一个变量 用来自定义目录级别
function rdir($path){
static $i = 1;
//1 打开目录
$res = opendir($path);
//2 读取目录 function rdir($path){
while(false!==($f=readdir($res))){
//过滤掉.和..
if($f=='.' || $f=='..'){
continue;
}
//处理一下文件的路径
$file = rtrim($path,"/")."/".$f;
//根据级别添加缩进,级别越深,缩进越多
for($j=1;$j<$i;$j++){
$prefix .= "  ";
}
echo $prefix .$f."----".filetype($file)."<br/>";
$prefix = "";
//如果该文件系统为目录
if(is_dir($file)){
$i++; //每次进入目录 让级别加1
rdir($file);
}
}
//关闭目录
closedir($res);
$i--; //关闭目录的时候让级别减一,恢复到上级目录的级别
}
<?php
//定义的一个函数 统计目录大小
//目录的大小实际就是目录当中所有文件的大小总和
function dirsize($path){
//1 打开这个目录
//2 遍历目录
while(false!==($f=readder($res))){
//先把.和..过滤
if($f=='.' || $f=='..'){
continue;
}
$file = rtrim($path,"/")."/".$f;
//判断,如果是目录
if(Is_dir($file)){
$size += dirsize($fize);
}else{
//3 统计文件的大写 依次累加
$size += filesize($fize);
}
}
//4 关闭目录
closedir($res);
return $size;
}
<?php
//定义一个函数 完成目录的复制
function cpdir($source,$dst){
//1 创建$dst目录
mkdir($dst,0755);
//2 遍历$source目录
//打开文件夹
//进行循环遍历
$res = opendir($surce);
while(false!==($f=readdir($res))){
//先把.和..过滤
if($f=='.' || $f=='..'){
continue;
}
//3 遇到文件 直接将文件copy到$dst目录当中
$file = rtrim($source,"/")."/".$f;
$dst_file = rtrim($dst,"/")."/".$f;
if(is_file($file)){
copy($file,$dst_file);
}
//4 遇到目录 在调用自己
if(is_dir($file)){
cpdir($file,$dst_file);
}
}
closedir($res);
}