php文件操作相关函数


//获取文件夹大小
function dir_size($dir) {
if (!preg_match(‘#/$#’, $dir)) {
$dir .= ‘/’;
}
$totalsize = 0;
//调用文件列表
foreach (get_file_list($dir) as $name) {
$totalsize += (@is_dir($dir.$name) ? dir_size(“$dir$name/”) :
(int)@filesize($dir.$name));
}
return $totalsize;
}

//获取文件列表
function get_file_list($path) {
$f = $d = array();
//获取所有文件
foreach (get_all_files($path) as $name) {
if (@is_dir($path.$name)) {
$d[] = $name;
} else if (@is_file($path.$name)) {
$f[] = $name;
}
}
natcasesort($d);
natcasesort($f);
return array_merge($d, $f);
}

//获取所有文件
function get_all_files($path) {
$list = array();
if (($hndl = @opendir($path)) === false) {
return $list;
}
while (($file=readdir($hndl)) !== false) {
if ($file != ‘.’ && $file != ‘..’) {
$list[] = $file;
}
}
closedir($hndl);
return $list;
}

//转换单位
function setupSize($fileSize) {
$size = sprintf(“%u”, $fileSize);
if($size == 0) {
return(“0 Bytes”);
}
$sizename = array(” Bytes”, ” KB”, ” MB”, ” GB”, ” TB”, ” PB”, ” EB”, ” ZB”, ” YB”);
return round($size/pow(1024, ($i = floor(log($size, 1024)))), 2) . $sizename[$i];
}

//创建文件
function createFolder($path)
{
if (!file_exists($path)) //如果文件夹不存在
{
createFolder(dirname($path)); //取得最后一个文件夹的全路径返回开始的地方

mkdir($path, 0777);
}
}

发表评论

1 + 8 = ?