找出一個文件夾下的所有文件

找出一個文件夾下的所有文件,用遞歸方法實現

/* 給出一個文件夾,找出文件夾下面的所有文件  */
class findfile{
    private $directory;//文件目錄
    public  $filelist;//文件列表
    public  function __construct($directory){
        $this->directory=$directory;
        $this->filelist=array();
    }
    public function checkdir(){//檢查文件目錄是否存在
        if (! file_exists ( $this->directory )) {
            exit ( 'no such dir' );
        }
        return true;
    }
    public function find_file() {
        $this->checkdir();
        $allfile = scandir ( $this->directory );//遍歷文件夾,並將所有文件夾以及文件名返回
        foreach ( $allfile as $file ) {//先把文件夾下的所有文件加入文件列表
            if (is_file ( $this->directory.'\\' . $file ) && substr ( $file, 0, 1 )!='.') {
                $this->filelist [] = $file;
            }
        }
        reset($allfile);//把數組指針重新指向第一個元素
        foreach ( $allfile as $dir ) {//遍歷數組查看是否有文件夾,如果有調用函數本身
            if (is_dir ( $this->directory.'\\' . $dir ) && substr ( $dir, 0, 1 )!='.') {
                $flag=$this->directory;
                $this->directory = $this->directory.'\\'.$dir;
                $this->find_file ();
                $this->directory=$flag;
            }
        }
        return $this->filelist;//返回文件列表
    }
}
/* 測試 */
$directory = 'F:\\wamp64\\www\\Test';
$file = new findfile($directory);
$list=$file->find_file();
var_dump ( $list );
發佈了26 篇原創文章 · 獲贊 2 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章