0
点赞
收藏
分享

微信扫一扫

PHP-非常好用的文件操作类

<?php
/**
*本类为文件操作类,实现了文件的建立,写入,删除,修改,复制,移动,创建目录,删除目录
* 列出目录里的文件等功能,路径后面别忘了加"/"
*
* @author 路人郝
* @copyright myself
* @link [url=http://www.phpr.cn]www.phpr.cn[/url]
*
*/
class fileoperate
{

var $path ; // 文件路径

var $name ; //文件名
var $result ; //对文件操作后的结果

/**
* 本方法用来在path目录下创建name文件
*
* @param string path
* @param string name
*/
function creat_file ( $path , $name ) //建立文件
{
$filename = $path . $name ;
if ( file_exists ( $filename ) )
{
echo "文件已经存在,请换个文件名" ;
}
else
{
if ( file_exists ( $path ) )
{
touch ( $name ) ;
rename ( $name , $filename ) ;
echo "文件建立成功 </br>" ;
}
else {
echo "目录不存在,请检查" ;
}
}
}


/**
* 本方法删除path路径下name文件
*
* @param string_type path
* @param string_type name
*/
function del_file ( $path , $name ) { //删除文件
$filename = $path . $name ;

if ( ! file_exists ( $filename ) ) {
echo "文件不存在,请确认路径是否正确" ;
}
else {
if ( unlink ( $filename ) ) {
echo "文件删除成功" ;
}
else echo "文件删除失败" ;
}

}

/**
* 本方法把filename文件重命名为newname文件
*
* @param string_type filename
* @param string_type newname
*/
function rename_file ( $filename , $newname ) { //文件或目录更名
$path = pathinfo ( $filename ) ;
$dir = $path [ 'dirname' ] ; //得到文件路径
$newfilename = $dir . '/' . $newname ;
if ( file_exists ( $filename ) ) { //判断文件是否存在
$result = rename ( $filename , $newfilename ) ;
if ( $result == true )
echo "文件更名成功" ;
else
echo "文件更名失败" ;
}
else
echo "文件不存在" ;
}

/**
* 本方法用来列出目录里的文件或目录switch为1时按字母顺序列出所有目录和文件
* switch为2则只列出目录,switch为3时,只列出文件名
*
* @param string_type path
* @param int_type switch
*/
function list_filename ( $path , $switch ) //列出文件和目录名
{
if ( file_exists ( $path ) ) {
$dir = scandir ( $path ) ;
if ( $switch == 1 ) { //如果switch为1则按字母顺序列出所有目录和文件
for ( $i = 0 ; $i <= count ( $dir ) ; $i ++ )
{
if ( $dir [ $i ] != "." and $dir [ $i ] != ".." )
{
echo "$dir[$i]<br>" ;
}
}
}
if ( $switch == 2 ) //switch为2则只列出目录
{
for ( $i = 0 ; $i <= count ( $dir ) ; $i ++ )
{
$x = is_dir ( $path . $dir [ $i ] ) ;
if ( $dir [ $i ] != "." and $dir [ $i ] != ".." and $x == true )
{
echo "$dir[$i]<br>" ;
}
}
}
if ( $switch == 3 ) //switch为3时,只列出文件名
{
for ( $i = 0 ; $i <= count ( $dir ) ; $i ++ )
{
$x = is_dir ( $path . $dir [ $i ] ) ;
if ( $dir [ $i ] != "." and $dir [ $i ] != ".." and $x == false )
{
echo "$dir[$i]<br>" ;
}
}
}
}
}

/**
* 本方法在path目录下创建名为dirname的目录
*
* @param string_type path
* @param string_type dirname
*/
function creat_dir ( $path , $dirname ) { //创建目录
if ( file_exists ( $path ) ) {
$result = @ mkdir ( $path . $dirname ) ;
if ( $result )
echo "目录建立成功" ;
else
echo "目录建立失败" ;
}
else
echo "路径不存在,请重新输入" ;
}

/**
* 本方法删除pathname目录,包括该目录下所有的文件及子目录
*
* @param string_type pathname
*/
function del_dir ( $pathname ) { //删除目录及目录里所有的文件夹和文件
if ( ! is_dir ( $pathname ) )
{ exit ( "你输入的不是一个目录,请检查" ) ; }
$handle = opendir ( $pathname ) ;
while ( ( $fileordir = readdir ( $handle ) ) !== false ) {
if ( $fileordir != "." && $fileordir != ".." ) {
is_dir ( "$pathname/$fileordir" ) ?
$this -> del_dir ( "$pathname/$fileordir" ) :
unlink ( "$pathname/$fileordir" ) ;
}
}
if ( readdir ( $handle ) == false )
{
closedir ( $handle ) ;
rmdir ( $pathname ) ;
}
}
}
?>

<?php
$op = new fileoperate ( ) ;
$op -> creat_file ( "user-files/" , "aa3.txt" ) ;
//$op->del_file("user-files/","aa3.txt");
//$op->rename_file("user-files/aa3.txt","测试文件.txt");
echo '<br>' ;
$op -> list_filename ( "user-files/" , 1 ) ;
$op -> creat_dir ( "user-files/" , "新建的目录" ) ;
$op -> del_dir ( "user-files/新建的目录" ) ;

?>

举报

相关推荐

0 条评论