PHP文件操作类(文件和文件夹创建,复制,移动和删除)
本文章给大家分享的文件操作类包括对文件和文件夹创建,复制,移动和删除,有需要对文件操作学习的同学可进入参考参考。
实例代码如下:
<?php /** * 操纵文件类 * * 例子: * FileUtil::createDir('a/1/2/3'); 测试建立文件夹 建一个a/1/2/3文件夹 * FileUtil::createFile('b/1/2/3'); 测试建立文件 在b/1/2/文件夹下面建一个3文件 * FileUtil::createFile('b/1/2/3.exe'); 测试建立文件 在b/1/2/文件夹下面建一个3.exe文件 * FileUtil::copyDir('b','d/e'); 测试复制文件夹 建立一个d/e文件夹,把b文件夹下的内容复制进去 * FileUtil::copyFile('b/1/2/3.exe','b/b/3.exe'); 测试复制文件 建立一个b/b文件夹,并把b/1/2文件夹中的3.exe文件复制进去 * FileUtil::moveDir('a/','b/c'); 测试移动文件夹 建立一个b/c文件夹,并把a文件夹下的内容移动进去,并删除a文件夹 * FileUtil::moveFile('b/1/2/3.exe','b/d/3.exe'); 测试移动文件 建立一个b/d文件夹,并把b/1/2中的3.exe移动进去 * FileUtil::unlinkFile('b/d/3.exe'); 测试删除文件 删除b/d/3.exe文件 * FileUtil::unlinkDir('d'); 测试删除文件夹 删除d文件夹 */ class FileUtil { /** * 建立文件夹 * * @param string $aimUrl * @return viod */ function createDir( $aimUrl ) { $aimUrl = str_replace ( '' , '/' , $aimUrl ); $aimDir = '' ; $arr = explode ( '/' , $aimUrl ); foreach ( $arr as $str ) { $aimDir .= $str . '/' ; if (! file_exists ( $aimDir )) { mkdir ( $aimDir ); } } } /** * 建立文件 * * @param string $aimUrl * @param boolean $overWrite 该参数控制是否覆盖原文件 * @return boolean */ function createFile( $aimUrl , $overWrite = false) { if ( file_exists ( $aimUrl ) && $overWrite == false) { return false; } elseif ( file_exists ( $aimUrl ) && $overWrite == true) { FileUtil::unlinkFile( $aimUrl ); } $aimDir = dirname( $aimUrl ); FileUtil::createDir( $aimDir ); touch( $aimUrl ); return true; } /** * 移动文件夹 * * @param string $oldDir * @param string $aimDir * @param boolean $overWrite 该参数控制是否覆盖原文件 * @return boolean */ function moveDir( $oldDir , $aimDir , $overWrite = false) { $aimDir = str_replace ( '' , '/' , $aimDir ); $aimDir = substr ( $aimDir , -1) == '/' ? $aimDir : $aimDir . '/' ; $oldDir = str_replace ( '' , '/' , $oldDir ); $oldDir = substr ( $oldDir , -1) == '/' ? $oldDir : $oldDir . '/' ; if (! is_dir ( $oldDir )) { return false; } if (! file_exists ( $aimDir )) { FileUtil::createDir( $aimDir ); } @ $dirHandle = opendir( $oldDir ); if (! $dirHandle ) { return false; } while (false !== ( $file = readdir( $dirHandle ))) { if ( $file == '.' || $file == '..' ) { continue ; } if (! is_dir ( $oldDir . $file )) { FileUtil::moveFile( $oldDir . $file , $aimDir . $file , $overWrite ); } else { FileUtil::moveDir( $oldDir . $file , $aimDir . $file , $overWrite ); } } closedir ( $dirHandle ); return rmdir ( $oldDir ); } /** * 移动文件 * * @param string $fileUrl * @param string $aimUrl * @param boolean $overWrite 该参数控制是否覆盖原文件 * @return boolean */ function moveFile( $fileUrl , $aimUrl , $overWrite = false) { if (! file_exists ( $fileUrl )) { return false; } if ( file_exists ( $aimUrl ) && $overWrite = false) { return false; } elseif ( file_exists ( $aimUrl ) && $overWrite = true) { FileUtil::unlinkFile( $aimUrl ); } $aimDir = dirname( $aimUrl ); FileUtil::createDir( $aimDir ); rename( $fileUrl , $aimUrl ); return true; } /** * 删除文件夹 * * @param string $aimDir * @return boolean */ function unlinkDir( $aimDir ) { $aimDir = str_replace ( '' , '/' , $aimDir ); $aimDir = substr ( $aimDir , -1) == '/' ? $aimDir : $aimDir . '/' ; if (! is_dir ( $aimDir )) { return false; } $dirHandle = opendir( $aimDir ); while (false !== ( $file = readdir( $dirHandle ))) { if ( $file == '.' || $file == '..' ) { continue ; } if (! is_dir ( $aimDir . $file )) { FileUtil::unlinkFile( $aimDir . $file ); } else { FileUtil::unlinkDir( $aimDir . $file ); } } closedir ( $dirHandle ); return rmdir ( $aimDir ); } /** * 删除文件 * * @param string $aimUrl * @return boolean */ function unlinkFile( $aimUrl ) { if ( file_exists ( $aimUrl )) { unlink( $aimUrl ); return true; } else { return false; } } /** * 复制文件夹 * * @param string $oldDir * @param string $aimDir * @param boolean $overWrite 该参数控制是否覆盖原文件 * @return boolean */ function copyDir( $oldDir , $aimDir , $overWrite = false) { $aimDir = str_replace ( '' , '/' , $aimDir ); $aimDir = substr ( $aimDir , -1) == '/' ? $aimDir : $aimDir . '/' ; $oldDir = str_replace ( '' , '/' , $oldDir ); $oldDir = substr ( $oldDir , -1) == '/' ? $oldDir : $oldDir . '/' ; if (! is_dir ( $oldDir )) { return false; } if (! file_exists ( $aimDir )) { FileUtil::createDir( $aimDir ); } $dirHandle = opendir( $oldDir ); while (false !== ( $file = readdir( $dirHandle ))) { if ( $file == '.' || $file == '..' ) { continue ; } if (! is_dir ( $oldDir . $file )) { FileUtil::copyFile( $oldDir . $file , $aimDir . $file , $overWrite ); } else { FileUtil::copyDir( $oldDir . $file , $aimDir . $file , $overWrite ); } } return closedir ( $dirHandle ); } /** * 复制文件 * * @param string $fileUrl * @param string $aimUrl * @param boolean $overWrite 该参数控制是否覆盖原文件 * @return boolean */ function copyFile( $fileUrl , $aimUrl , $overWrite = false) { if (! file_exists ( $fileUrl )) { return false; } if ( file_exists ( $aimUrl ) && $overWrite == false) { return false; } elseif ( file_exists ( $aimUrl ) && $overWrite == true) { FileUtil::unlinkFile( $aimUrl ); } $aimDir = dirname( $aimUrl ); FileUtil::createDir( $aimDir ); copy ( $fileUrl , $aimUrl ); return true; } } ?>查看更多关于PHP文件操作类(文件和文件夹创建,复制,移动的详细内容...
声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://haodehen.cn/did29570