<?php
/**
*文件操作函数:目录的基本操作
*/
// 1.basename()返回路径中的文件名部分
$path='./var/www/html/demo.php';
echo basename($path); // 输出demo.php
echo basename($path,".php"); // 输出demo
// 2.dirname()返回去掉文件名的目录部分
echo dirname($path); // 输出./var/www/html
echo "<hr/>";
// 3.pathinfo()返回一个关联数组(dirname,basename.extension 目录名,基本名,扩展名)
$path2="./demo2.php";
$info=pathinfo($path2);
echo $info['dirname'].'<br/>';
echo $info['basename'].'<br/>';
echo $info['extension'];
echo "<hr/>";
// 4.遍历文件目录
// opendir() 打开指定目录
// readdir() 读取指定内容
// closedir() 关闭指定目录
// rewinddir() 倒回目录句柄
$num=0; // 统计字目录和文件个数
$dirname='../../basic';
$dir_handle=opendir($dirname);
// 输出遍历结果
while($file=readdir($dir_handle)){
$dirFile=$dirname."/".$file;
echo "文件名:".$file.' ';
echo "文件大小:".filesize($dirFile).' ';
echo "文件类型:".filetype($dirFile).' ';
echo "文件修改时间".date("Y/n/t",filemtime($dirFile)).'<br/>';
$num++;
}
closedir($dir_handle);
echo "文件总个数:".$num;
echo "<hr/>";
// 5.统计目录大小
function dirSize($diretory){
$dir_size=0; // 记录定义目录大小的变量并初始化为0
if($dir_handle=opendir($diretory)){ // 打开目录
while($filename=readdir($dir_handle)){ // 读取目录
if($filename!="."&&$filename!=".."){
$subFile=$diretory."/".$filename;
if(is_dir($subFile)){ // 判断是否是目录
$dir_size+=dirSize($subFile); // 递归
}elseif(is_file($subFile)){ // 判断是否是文件
$dir_size+=filesize($subFile); // 文件大小
}
}
}
closedir($dir_handle);
return $dir_size;
}
}
$dir_size=dirSize("../../basic");
echo round($dir_size/pow(1024,1),2)."KB";
echo "<hr/>";
// 6.建立和删除目录
function delDir($directory){
if(file_exists($diretory)){
if($dir_handle=opendir($directory)){
while($filename=readdir($dir_handle)){
if($filename!="."&&$filename!=".."){
$subFile=$directory."/".$filename;
if(is_dir($subFile)){
delDir($subFile);
}elseif(is_file($subFile)){
unlink($subFile); // 删除这个文件
}
}
}
closedir($dir_handle);
rmdir($directory); // 删除空目录
}
}
}
delDir("../../basic");
echo "<hr/>";
// 7.复制目录
function copyDir($dirSrc,$dirTo){
if(is_file($dirTo)){
echo "目标不是目录,不能创建";
return;
}
if(!file_exists($dirTo)){
mkdir($dirTo); // 创建目标目录
}
if($dir_handle=opendir($dirSrc)){
while($filename=readdir($dir_handle)){
if($filename!="."&&$filename!=".."){
$subSrcFile=$dirSrc ."/".$filename;
$subToFile=$dirTo ."/".$filename;
if(is_dir($subSrcFile)){
copyDir($subSrcFile,$subToFile);
}
if(is_file($subSrcFile)){
copy($subSrcFile,$subToFile);
}
}
}
closedir($dir_handle);
}
}
copyDir("../../PHParticle/001","./");
/**
*文件操作函数:目录的基本操作
*/
// 1.basename()返回路径中的文件名部分
$path='./var/www/html/demo.php';
echo basename($path); // 输出demo.php
echo basename($path,".php"); // 输出demo
// 2.dirname()返回去掉文件名的目录部分
echo dirname($path); // 输出./var/www/html
echo "<hr/>";
// 3.pathinfo()返回一个关联数组(dirname,basename.extension 目录名,基本名,扩展名)
$path2="./demo2.php";
$info=pathinfo($path2);
echo $info['dirname'].'<br/>';
echo $info['basename'].'<br/>';
echo $info['extension'];
echo "<hr/>";
// 4.遍历文件目录
// opendir() 打开指定目录
// readdir() 读取指定内容
// closedir() 关闭指定目录
// rewinddir() 倒回目录句柄
$num=0; // 统计字目录和文件个数
$dirname='../../basic';
$dir_handle=opendir($dirname);
// 输出遍历结果
while($file=readdir($dir_handle)){
$dirFile=$dirname."/".$file;
echo "文件名:".$file.' ';
echo "文件大小:".filesize($dirFile).' ';
echo "文件类型:".filetype($dirFile).' ';
echo "文件修改时间".date("Y/n/t",filemtime($dirFile)).'<br/>';
$num++;
}
closedir($dir_handle);
echo "文件总个数:".$num;
echo "<hr/>";
// 5.统计目录大小
function dirSize($diretory){
$dir_size=0; // 记录定义目录大小的变量并初始化为0
if($dir_handle=opendir($diretory)){ // 打开目录
while($filename=readdir($dir_handle)){ // 读取目录
if($filename!="."&&$filename!=".."){
$subFile=$diretory."/".$filename;
if(is_dir($subFile)){ // 判断是否是目录
$dir_size+=dirSize($subFile); // 递归
}elseif(is_file($subFile)){ // 判断是否是文件
$dir_size+=filesize($subFile); // 文件大小
}
}
}
closedir($dir_handle);
return $dir_size;
}
}
$dir_size=dirSize("../../basic");
echo round($dir_size/pow(1024,1),2)."KB";
echo "<hr/>";
// 6.建立和删除目录
function delDir($directory){
if(file_exists($diretory)){
if($dir_handle=opendir($directory)){
while($filename=readdir($dir_handle)){
if($filename!="."&&$filename!=".."){
$subFile=$directory."/".$filename;
if(is_dir($subFile)){
delDir($subFile);
}elseif(is_file($subFile)){
unlink($subFile); // 删除这个文件
}
}
}
closedir($dir_handle);
rmdir($directory); // 删除空目录
}
}
}
delDir("../../basic");
echo "<hr/>";
// 7.复制目录
function copyDir($dirSrc,$dirTo){
if(is_file($dirTo)){
echo "目标不是目录,不能创建";
return;
}
if(!file_exists($dirTo)){
mkdir($dirTo); // 创建目标目录
}
if($dir_handle=opendir($dirSrc)){
while($filename=readdir($dir_handle)){
if($filename!="."&&$filename!=".."){
$subSrcFile=$dirSrc ."/".$filename;
$subToFile=$dirTo ."/".$filename;
if(is_dir($subSrcFile)){
copyDir($subSrcFile,$subToFile);
}
if(is_file($subSrcFile)){
copy($subSrcFile,$subToFile);
}
}
}
closedir($dir_handle);
}
}
copyDir("../../PHParticle/001","./");