读取文件夹 :/**
* 使用递归遍历读取文件和文件夹
*/
$dirname = "test";function listdir($dirname){
$ds = opendir($dirname); //创建一个目录资源, 传入的目录就是资源 while($file = readdir($ds)){ //从目录中读取条目
//这里的$path 表示这个路径下的文件夹,如果不这么去定义,里边执行递归语句的时候,找不到是那个文件夹
$path = $dirname."/".$file;
//判断,如果是 . 或者 ..的目录就过滤掉 if($file != "." && $file != ".."){ if(is_dir($path)){ //判断如果找到的是目录 echo "目录 : ".$file."
"; //就打印出找到的文件名
listdir($path); //如果得到是文件夹,然后递归调用一次方法传入的$path文件夹路径就是判断得到的文件夹赋值给$dirname
}else{ echo "文件 : ".$file."
"; //否则就找到打印的文件夹名
}
}
}
}
listdir($dirname);
获取文件夹的大小/**
* 使用递归遍历获取文件夹的大小
*/
$dirname = "test2";function totdir($dirname){ static $tot; //这里把$tot定义为静态的,表示$tot全局只有这一个变量
$ds = opendir($dirname); //创建一个目录资源, 传入的目录就是资源 while($file = readdir($ds)){ //从目录中读取到条目
//这里的$path 表示这个路径下的文件夹,如果不这么去定义,里边执行递归语句的时候,找不到是那个文件夹
$path = $dirname."/".$file;
//判断,如果是 . 或者 ..的目录就过滤掉 if($file != "." && $file != ".."){ if(is_dir($path)){ //判断如果找到的是目录
totdir($path); //如果得到是文件夹,然后递归调用一次方法传入的$path文件夹路径就是判断得到的文件夹赋值给$dirname
}else{
$tot += filesize($path);
}
}
}
return $tot." bytes";
}
echo totdir($dirname);
删除目录 :/**
* PHP删除目录、复制目录和移动目录
*/
$dirname = "test"; //目录路径function deldir($dirname){
$ds = opendir($dirname); //创建一个目录资源, 传入的目录就是资源 while($file = readdir($ds)){ //从目录中读取到条目
//这里的$path 表示这个路径下的文件夹,如果不这么去定义,里边执行递归语句的时候,找不到是那个文件夹
$path = $dirname."/".$file;
//判断,如果是 . 或者 ..的目录就过滤掉
if($file != "." && $file != ".."){
if(is_dir($path)){ //判断如果找到的是目录
deldir($path);
}else{
unlink($path);
}
}
}
closedir($ds); //关闭目录资源
return rmdir($dirname);
}
var_dump(deldir($dirname));
复制目录 :/**
* PHP删除目录、复制目录和移动目录
*/
$srcDir = "test"; //目录路径
$dstDir = "test2"; //目录路径function copydir($srcDir,$dstDir){ if(!is_dir($dstDir)){ //这里判断一下目标路径是否存在,不存在则创建
mkdir($dstDir); //创建目标路径
}
$ds = opendir($srcDir); //创建一个目录资源, 传入的目录就是资源 while($file = readdir($ds)){ //从目录中读取到条目
//这里的$path 表示这个路径下的文件夹,如果不这么去定义,里边执行递归语句的时候,找不到是那个文件夹
$path = $srcDir."/".$file; //这里的 $file表示的是 test下的条目.所以使用的时候需要用绝对路径在前面加上$srcDir
$dstpath = $dstDir."/".$file;
//判断,如果是 . 或者 ..的目录就过滤掉 if($file != "." && $file != ".."){ if(is_dir($path)){ //判断如果找到的是目录
copydir($path,$dstpath); //如果是文件夹,那么传过去的$path就表示文件夹的绝对地址
}else{
copy($path,$dstpath); //如果是文件夹,那么传过去的$path就表示文件的绝对地址
}
}
}
closedir($ds); //关闭目录资源
}
copydir($srcDir,$dstDir);
本文来自投稿,不代表访得立场,如若转载,请注明出处:http://www.found5.com//view/149.html