/* * new getFile($_dir[,$_emptyDir,$_fileType]); * @parma $_dir 是目錄名稱 * @parma $_emptyDir 是否獲取空文件夾,選填,默認不獲取,true則獲取空文件夾 * @parma $_fileType 獲取文件名稱的類型,選填,默認獲取只文件名稱,true則獲取帶有路徑的文件名稱 **/ class getFiles { private $_dir; private $_emptyDir; private $_fileType; public $_files; public function __construct($_dir,$_emptyDir = false,$_fileType = false) { $this->_dir = $_dir; $this->_emptyDir = $_emptyDir; $this->_fileType = $_fileType; if ($this->_emptyDir) { $this->getFileEmpty($this->_dir,$this->_files); } else { $this->getFile($this->_dir,$this->_files); } } //讀取文件夾所有文件不包括空文件夾 private function getFile($_dir,&$_arr) { if (!!$_dirs = opendir($_dir)) { while (($_file=readdir($_dirs)) != false) { if ($_file == '.' || $_file == '..') continue; $_files = $_dir .'/'. $_file; if (is_dir($_files)) { $this->getFile($_files,$_arr); } else { if ($this->_fileType) { $_arr[] = $_files; } else { $_arr[] = $_file; } } } } closedir($_dirs); } //讀取文件夾所有文件包括空文件夾 private function getFileEmpty($_dir,&$_arr) { if (!!$_dirs = opendir($_dir)) { while (($_file=readdir($_dirs)) != false) { if ($_file == '.' || $_file == '..') continue; $_files = $_dir .'/'. $_file; if (is_dir($_files) && $this->isEmpty($_files)) { $this->getFileEmpty($_files,$_arr); } else { if ($this->_fileType) { $_arr[] = $_files; } else { $_arr[] = $_file; } } } } closedir($_dirs); } //判斷文件夾是否為空 private function isEmpty($_dir) { if (!!$_dirs = opendir($_dir)) { while (($_file=readdir($_dirs)) != false) { if($_file != '.' && $_file != '..') { closedir($_dirs); return true; break; } } closedir($_dirs); return false; } } }
轉載請注明出處:http://www.ly89.cn/detailB/36.html