php递归创建和删除文件夹

<?php 
/**
 * 目录生成类 :UtilsMakeDir
 * @author yepeng
 * @since 2010.3.18
 */
class UtilsMakeDir{
	//基目录 建立目录时不会对这个目录进行建立。这应该是个已经存在的目录
	private static  $makeBasePath = 'video';
	private static  $delBasePath = 'video';
	
	/**
	 * 递归建立目录,
	 * 建立成功返回这个全路径,
	 * 建立失败返回false	 
	 * @param String $pathString 路径字符串如'2/3/4/5'
	 * @return false or string 

	public static function makeDir($pathString){
	    $pathArray = explode('/',$pathString);		     
	    if(empty($pathArray[0])){	    	
	    	return false;	    	
	    }	
	    $path = array_shift($pathArray);	      
	    self::$basePath = self::$basePath.'/'.$path;	   
	    if(is_dir(self::$basePath)){
	    		$path = implode('/',$pathArray);	    
	    		self::makeDir($path);
	    }
	    else{		
	    	    @mkdir(self::$basePath,0777);
	    	    $path = implode('/',$pathArray);	    	    
	    		self::makeDir($path);
	    }	    
	    if(is_dir(self::$basePath)){	    	
	    	return 	self::$basePath;  
	    }
	    else{
	    	return false;
	    }	       
	}	 */
	/**
	 * 建立目录,包括基目录,比如图片要放在video(video为存在的目录)下面,你传入的参数应该是video/2/3/4
	 * 建立成功返回这个全路径,
	 * 建立失败返回false	 
	 * @param String $pathString 路径字符串如'video/2/3/4/5'
	 * @return false or string 
	**/
	public static function makeDir($pathString){
		$pathArray = explode('/',$pathString);
		$tmpPath = array_shift($pathArray);
		foreach ($pathArray as $val){
			$tmpPath .= "/".$val;			
			if(is_dir($tmpPath)){
				continue;
			}
			else {
				@mkdir($tmpPath,0777);
			}
		}
		if(is_dir($tmpPath)){
			return $tmpPath;
		}
		else{
			return false;
		}		
	}	/**
	 * 递归删除
	 * 删除目录及文件
	 * 如果传一个‘video/2/3/4’这样的路径将删除4下的所有目录和文件
	 * @param string $stringPath
	 */
	public static function delDir($stringPath){		
		if(!$handle = @opendir($stringPath)){
			return false;
		}
		while (false !==($file = readdir($handle))){
			if($file !='.' && $file != '..'){
				$tmpdir = $stringPath."/".$file;
				if(is_dir($tmpdir)){
					self::delDir($tmpdir);					
                    rmdir($tmpdir);
				}
				if(is_file($tmpdir)){				   
					unlink($tmpdir);
				}				
			}
		}		
		closedir($handle);		
	}}
	
	
	?>

方法二

<?php
/*
* 功能:连续建目录
* $dir 目录字符串
*/
function makedir( $dir, $mode = "0777" ) {
	if( ! $dir ) return 0;
	$dir = str_replace( "\\", "/", $dir );
	$mdir = "";
	foreach( explode( "/", $dir ) as $val ) {
		$mdir .= $val."/";
		if( $val == ".." || $val == "." ) continue;
		if( ! file_exists( $mdir ) ) {
			if(!@mkdir( $mdir, $mode )){
				echo "创建目录 [".$mdir."]失败.";
				exit;
			}
		}
	}
	return true;
}

function creat_file($PATH){
	$sFile = "test.html";
	if (file_exists($PATH.$sFile)) {
		creat_file();
	} else {
		$fp= fopen($PATH.$sFile,"w");
		fclose($fp);
	}
	return $sFile;
}
makedir("./2012/04/13");
creat_file("./2012/04/13/");
?>
	



  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值