<?phpclassRecDir{protected$rootPath;protected$opDirectory;constRECDIR_MIXED='mixed';constRECDIR_DIR='dir';constRECDIR_FILE='file';public$errorMsg='';public$errorNo=0;publicfunction__construct($rootPath){$this->rootPath=$rootPath;if(is_dir($this->rootPath)){$this->rootPath=pathinfo($this->rootPath,PATHINFO_DIRNAME).DIRECTORY_SEPARATOR.pathinfo($this->rootPath,PATHINFO_BASENAME);$this->opDirectory=dir($this->rootPath);}else{$this->errorMsg='您提供的目录不存在!';$this->errorNo=1001;thrownewException($this->errorMsg,$this->errorNo);}}privatefunctionread($directory,$parentPath,$modeInfo='mixed',$defaultDir=false,$fullPath=false){$dirInfo=array();while(FALSE!==($childDirOrFileName=$directory->read())){switch($modeInfo){caseself::RECDIR_MIXED:if($defaultDir){$dirInfo[]=$fullPath?$parentPath.DIRECTORY_SEPARATOR.$childDirOrFileName:$childDirOrFileName;}else{if($childDirOrFileName!='.'&&$childDirOrFileName!='..'){$dirInfo[]=$fullPath?$parentPath.DIRECTORY_SEPARATOR.$childDirOrFileName:$childDirOrFileName;}}break;caseself::RECDIR_DIR:if(is_dir($parentPath.DIRECTORY_SEPARATOR.$childDirOrFileName)){if($defaultDir){$dirInfo[]=$fullPath?$parentPath.DIRECTORY_SEPARATOR.$childDirOrFileName:$childDirOrFileName;}else{if($childDirOrFileName!='.'&&$childDirOrFileName!='..'){$dirInfo[]=$fullPath?$parentPath.DIRECTORY_SEPARATOR.$childDirOrFileName:$childDirOrFileName;}}}break;caseself::RECDIR_FILE:if(is_file($parentPath.DIRECTORY_SEPARATOR.$childDirOrFileName)){$dirInfo[]=$fullPath?$parentPath.DIRECTORY_SEPARATOR.$childDirOrFileName:$childDirOrFileName;}break;}}return$dirInfo;}/***(PHP5>=5.4.0)<br/>*得到目录下的直接子目录或直接子文件信息*@paramstring$modeInfo[可选]<p>*返回目录下信息的模式*mixed返回所有的文件名及目录名*dir返回所有的目录名*file返回所有的文件名*</p>*@parambool$defaultDir[可选]<p>*是否包括默认的链接目录..和.*false不包括*true包括*</p>*@parambool$fullPath[可选]<p>*是否返回子文件或目录的路径信息*true是*false否*<p>*@returnarray返回一个数组,记录了该目录下的信息*/publicfunctiongetPathDirectDirInfo($modeInfo='mixed',$defaultDir=false,$fullPath=false){return$this->read($this->opDirectory,$this->rootPath,$modeInfo,$defaultDir,$fullPath);}}//----------------------------test-----------------------------------------header("Content-type:text/html;charset=UTF-8");try{$recDir=newRecDir('./CALLTEMP/');$dirs=$recDir->getPathDirectDirInfo('file',true,true);var_dump($dirs);}catch(Exception$ex){echo'在文件【'.$ex->getFile().'】中的第'.$ex->getLine().'行报错:'.$ex->getMessage().'('.$ex->getCode().')';}