日期:2014-05-17  浏览次数:20426 次

《PHP---自定义创建目录文件方法》----如果目录已存在,该目录必须为空才可继续创建

BUG:

如果目录已存在,该目录必须为空才可继续创建

<?php

	/*
	定义的path目录
	$path = "C:/aaa/bbb/ccc/ddd/eee";
	调用makeDir函数自动生成目录
	makeDir($path);
	$path = "C:/aaa/bbb/ccc/ddd/eee.txt";
	调用makeDir函数自动生成目录在ddd目录下有一eee.txt的文件
	makeDir($path,true);
	参数说明:
		$path需要生成的路径,前面什么都不加默认生成在本目录下
		例如:/aaa/bbb/ccc/ddd/eee
		$hasfile是否生成文件,非零为生成文件
		文件名在path中包含。
	*/	

	function makeDir($path, $hasfile){
		//标记是否生成最后的文件,控制循环的次数
		$falg = 0;
		if ($hasfile){
			$falg = 1;
		}
		
		//将path按'/'分割
		$dirs = split('/', $path);

		$dircount = count($dirs);
		$makedir = $dirs[0];
		for ($i = 1; $i < $dircount - $falg; $i++){
			//判断生成目录的位置
			if (!strcmp($makedir,"")){
				$makedir = ".";
			}
			//目录名称
			$makedir = $makedir."/".$dirs[$i];
			//判断是否已含有本目录
			if (is_dir($makedir)){
				echo $makedir."目录已存在<br/>";
				continue;
			}
			//创建目录
			if (mkdir($makedir)){
				echo $makedir."--目录创建成功<br/>";
			}
		}
		
		//创建文件
		if ($hasfile){
			$filename = $makedir."/".$dirs[$dircount-1];
			//判断文件是否存在
			if (!is_file($filename)){
				if (touch($filename)){
					echo "文件创建成功<br/>";
				}
				}else{
					echo "文件已存在<br/>";
				}
		}
?>