目录操作相关函数

1 删除文件

/**
* 删除文件
* @ param string $filename 要删除的文件名称
* @ return bool 删除成功返回true,删除失败返回false
*/
function delFile($filename)
{
if(file_exists($filename)){
return unlink($filename);
}
return false;
}


2 创建目录

/**
* 作用:创建目录, 存在不创建,不存在就创建
* @ param string $path 路径
* @ return bool
*/
function createDir($path)
{
// 判断目录是否存在
if(is_dir($path)){
return false; //目录存在
}else{
//第三个参数是“true”表示能创建多级目录,iconv防止中文目录乱码
$res = mkdir(iconv("UTF-8", "GBK", $path),0777,true);
if($res){
return true; //创建成功
}else{
return false; //创建失败
}
}
}


3 删除目录

/**
* 删除目录
* @ param string $dir 要删除的目录名称
* @ return string 删除成功返回字符串true,删除失败返回字符串false
*/
function delDirectory($dir)
{
// 打开指定目录,@符号用来屏蔽错误
if($handle = @opendir($dir)){
while(($file = readdir($handle)) !== false){
if (($file == ".") || ($file == "..")){
continue;
}
if (is_dir($dir . '/' . $file)){
delDirectory($dir . '/' . $file); // 递归
}else{
unlink($dir . '/' . $file); // 删除文件
}
}
@closedir($handle);
if(rmdir($dir)){
return 'ture';
}
return 'false';
}
return 'false';
}


4 获取目录大小

/**
* 获取目录大小
* @ param string $dir 目录名称
* @ return int 返回目录大小
*/
function getDirSize($dir)
{
$handle = opendir($dir);
$sizeResult = 0;
while (($folderorfile = readdir($handle)) !== false) {
if($folderorfile != "." && $folderorfile != ".."){
if(is_dir("$dir/$folderorfile")){
$sizeResult += getDirSize("$dir/$folderorfile");
}else{
$sizeResult += filesize("$dir/$folderorfile");
}
}
}
closedir($handle);
return $sizeResult;
}


5 格式化目录大小

/**
* 格式化目录大小
* @ param int $size 目录大小数值
* @ return string 返回格式化后的目录大小
*/
function getRealSize($size)
{
$kb = 1024; // Kilobyte
$mb = 1024 * $kb; // Megabyte
$gb = 1024 * $mb; // Gigabyte
$tb = 1024 * $gb; // Terabyte

if($size < $kb){
return $size." B";
}else if($size < $mb){
return round($size/$kb,2)." KB";
}else if($size < $gb){
return round($size/$mb,2)." MB";
}else if($size < $tb){
return round($size/$gb,2)." GB";
}else{
return round($size/$tb,2)." TB";
}
}


相关推荐

  • 获取指定目录下的所有图片信息

    1 获取指定目录下的所有图片信息// 获取指定目录下的所有图片信息 public function getImagesInfo($directory) { $images = []; // 创建递归目录迭代器 $iterator = new \RecursiveIteratorIterator( new \RecursiveDirectoryIterator($directory, \RecursiveDirectoryIterator::SKIP_DOTS), \RecursiveIteratorIterator::LEAVES_ONLY ); // 遍历目录中的每个文件 foreach (

  • Thinkphp各版本的PHP要求

    ThinkPHP 8.0:运行环境要求PHP8.0+,兼容PHP8.3ThinkPHP 6.1:运行环境要求PHP7.2+,兼容PHP8.1ThinkPHP 6.0:运行环境要求PHP7.2+,兼容PHP8.1ThinkPHP 5.1:运行环境要求PHP5.6+,兼容PHP8.0ThinkPHP 5.0:运行环境要求PHP5.4+,兼容PHP7.3

  • Thinkphp5.1路径常量

    1 配置文件位置根目录/config/template.php2 配置文件内容&lt;?php// +----------------------------------------------------------------------// | ThinkPHP [ WE CAN DO IT JUST THINK ]// +----------------------------------------------------------------------// | Copyright (c) 2006~2018 http://thinkphp.cn All rights reser

  • Thinkphp5.0路径常量

    1 配置文件位置根目录/application/模块名/config.php2 配置文件内容&lt;?php//配置文件return [ // 后台视图输出字符串内容替换 'view_replace_str' =&gt; [ '__PUBLIC__' =&gt; '/', '__STATIC__' =&gt; '/static', '__CONSOLE__' =&gt; '/static/console', '__CONSOLE_CSS__' =&gt; '/static/console/css', '__CONSOLE_IMAGES__' =&gt; '/static/console/ima

  • wp站点防止别人进行DDOS攻击

    1 简介wp站点防止别人进行DDOS攻击。2 配置位置位置:根目录/wp-config.php3 配置内容在【根目录/wp-config.php】文件的开头添加如下代码:if(strpos($_SERVER['REQUEST_URI'], 'xmlrpc.php') !== false){ $protocol = $_SERVER['SERVER_PROTOCOL'] ?? ''; if(!in_array($protocol, ['HTTP/1.1', 'HTTP/2', 'HTTP/2.0', 'HTTP/3'], true)){ $protocol = 'HTTP/1.0'; } hea

  • 只读属性

    1 只读属性简介只读属性的声明方式类似于普通属性,但需要使用 readonly 关键字。2 只读属性例子class Point { public readonly float $x; public readonly float $y; public function __construct(float $x, float $y) { $this-&gt;x = $x; $this-&gt;y = $y; }}$point = new Point(3.5, 2.8);echo $point-&gt;x; // 输出: 3.5echo $point-&gt;y; // 输出: 2.8// 下面的尝