您的位置:首页 > 编程语言 > PHP开发

PHP基本的文件和文件夹操作常用的汇总

2015-12-08 18:13 781 查看
资源:http://www.ido321.com/835.html

一、基本文件的操作

文件的基本操作有:文件推断、文件夹推断、文件大小、读写性推断、存在性推断及文件时间等

[code] <?php

header("content-type","text/html;charset=utf-8");

/*

*声明一个函数。传入文件名称获取文件属性

*@param string $fileName 文件名

*/

function getFilePro($fileName)

{

if(!file_exists($fileName))

{

echo '文件不存在<br/>';

return;

}

 /*是否是普通文件*/

if(is_file($fileName))

{

echo $fileName.'是一个文件<br/>';

}

 /*是否是文件夹*/

if(is_dir($fileName))

{

echo $fileName.'是一个文件夹';

}

 /*输出文件的型态*/

echo '文件型态是:'.getFileType($fileName).'<br/>';

 /*文件大小,转换单位*/

echo '文件大小是:'.getFileSize(filesize($fileName)).'<br/>';

 /*文件是否可读*/

if(is_readable($fileName))

{

echo '文件可读<br/>';

}

 /*文件是否可写*/

if(is_writable($fileName))

{

echo '文件可写<br/>';

}

 /*文件是否可运行*/

if(is_executable($fileName))

{

echo '文件可运行<br/>';

}


echo '文件创立时间:'.date('Y年m月j日',filectime($fileName)).'<br/>';

echo '文件最后改动时间:'.date('Y年m月j日',filemtime($fileName)).'<br/>';

echo '文件最后打开时间:'.date('Y年m月j日',fileatime($fileName)).'<br/>';

}


/*

*声明一个函数,返回文件类型

*@param string $fileName 文件名

*/

function getFileType($fileName)

{

$type = '';

switch(filetype($fileName))

{

case 'file':$type .= '普通文件';break;

case 'dir':$type .= '文件夹文件';break;

case 'block':$type .= '块设备文件';break;

case 'char':$type .= '字符设备文件';break;

case 'filo':$type .= '管道文件';break;

case 'link':$type .= '符号链接';break;

case 'unknown':$type .= '未知文件';break;

default:

}

return $type;

}


/*

*声明一个函数,返回文件大小

*@param int $bytes 文件字节数

*/

function getFileSize($bytes)

{

if($bytes >= pow(2,40))

{

$return = round($bytes / pow(1024,4),2);

$suffix = 'TB';

}

else if($bytes >= pow(2,30))

{

$return = round($bytes / pow(1024,3),2);

$suffix = 'GB';

}

else if($bytes >= pow(2,20))

{

$return = round($bytes / pow(1024,2),2);

$suffix = 'MB';

}

else if($bytes >= pow(2,10))

{

$return = round($bytes / pow(1024,1),2);

$suffix = 'KB';

}

else

{

$return = $bytes;

$suffix = 'B';

}

return $return." ".$suffix;

}


/*调用函数。传入test文件夹下的test.txt文件*/

getFilePro('./test/div.html');

?

>

[/code]

结果:



二、文件夹的操作

文件夹的操作有:遍历文件夹、删除、复制、大小统计等

1、遍历文件夹



[code]/*

*遍历文件夹

*@param string $dirName 文件夹名

*/

function findDir($dirName)

{

     $num  = 0;/*统计子文件个数*/

     $dir_handle = opendir($dirName);/*打开文件夹*/

 /*输出文件夹文件*/

echo '<table border="0" align="center" width="600" cellspacing="0" cellpadding="0">';

echo '<caption><h2>文件夹'.$dirName.'下的文件</h2></caption>';

echo '<tr align="left" bgcolor="#cccccc"';

echo '<th>文件名称</th><th>文件大小</th><th>文件类型</th><th>改动时间</th></tr>';


while($file = readdir($dir_handle))

{

$dirFile = $dirName.'/'.$file;

$bgcolor = $num++%2==0?'#ffffff':'#cccccc';

echo '<tr bgcolor='.$bgcolor.'>';

echo '<td>'.$file.'</td>';

echo '<td>'.filesize($dirFile).'</td>';

echo '<td>'.filetype($dirFile).'</td>';

echo '<td>'.date('Y/n/t',filemtime($dirFile)).'</td>';

echo '</tr>';

}

echo "</table>";

     closedir($dir_handle);/*关闭文件夹*/

echo "在<b>".$dirName."</b>文件夹下共同拥有<b>".$num.'</b>个子文件';

}

/*传递当前文件夹下的test文件夹*/

findDir('./test');

[/code]

结果



2、统计文件夹大小



[code]/*

*统计文件夹大小

*@param string $dirName 文件夹名

*@return double

*/


function dirSize($dirName)

{

$dir_size = 0;

if($dir_handle = @opendir($dirName))

{

while ($fileName = readdir($dir_handle))

{

          /*排除两个特殊文件夹*/

if($fileName != '.' && $fileName != '..')

{

$subFile = $dirName.'/'.$fileName;

if(is_file($subFile))

{

$dir_size += filesize($subFile);

}

if(is_dir($subFile))

{

$dir_size += dirSize($subFile);

}

}

}

closedir($dir_handle);

return $dir_size;

}

}

/*传递当前文件夹下的test文件夹*/

$dir_size = dirSize('./test');

echo './test文件夹文件大小是:'.round($dir_size / pow(1024,1),2).'KB';

[/code]

结果



3、删除文件夹



[code]/*

*删除文件夹

*@param string $dirName 文件夹名

*/

function delDir($dirName)

{

 /*php中的mkdir函数就能够创建文件夹*/

if(file_exists($dirName))

{

    if($dir_handle = @opendir($dirName))

{

    while ($fileName = readdir($dir_handle))

{

/*排除两个特殊文件夹*/

    if($fileName != '.' && $fileName != '..')

{

    $subFile = $dirName.'/'.$fileName;

    if(is_file($subFile))

{

unlink($subFile);

}

    if(is_dir($subFile))

{

delDir($subFile);

}

}

}

    closedir($dir_handle);

rmdir($dirName);

return $dirName.'文件夹已经删除';

}

}

}

/*传递test文件夹的副本test1*/

echo delDir('./test1');

[/code]

删除成功的提示信息



4、拷贝文件夹

/*

*拷贝文件夹

*@param string $dirSrc 原文件夹名

*@param string $dirTo 目标文件夹名

*/

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_file($subSrcFile))

{

copy($subSrcFile,$subToFile);

}

if(is_dir($subSrcFile))

{

copyDir($subSrcFile,$subToFile);

}

}

}

closedir($dir_handle);

return $dirSrc.'文件夹已经拷贝到'.$dirTo.'文件夹';

}

}

echo copyDir('./test','../testcopy');
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: