国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

RecursiveDirectoryIterator目錄操作類

2019-11-15 01:49:40
字體:
來源:轉載
供稿:網友
RecursiveDirectoryIterator目錄操作類
/** * @author Funsion Wu * @abstract SPL使用案例,全國首發,技術分享,歡迎轉帖 */class Dir extends RecursiveDirectoryIterator {    const CHILD_FIRST = RecursiveIteratorIterator::CHILD_FIRST ;    const LEAVES_ONLY = RecursiveIteratorIterator::LEAVES_ONLY ;    const SELF_FIRST  = RecursiveIteratorIterator::SELF_FIRST ;    /* ideas:將Dir類設置為不變類,無狀態類 */    PRivate static function getDirIterator( $dir, $mode=self::LEAVES_ONLY ) {        if( !file_exists($dir) ){ exit ; }        $dirIterator = new RecursiveDirectoryIterator($dir);        $objIterator = new RecursiveIteratorIterator( $dirIterator, $mode );        return $objIterator;    }    /**     * 遞歸的刪除目錄                           + ----------------------------------------------------- +     * @param   $dir 要刪除的目錄     * @param   $delSelf 決定刪除目錄or清空目錄,默認刪除目錄     */    public static function delDir( $dir, $delSelf=true ) {        $dirIterator = self::getDirIterator($dir, self::CHILD_FIRST);        foreach ( $dirIterator as $file ) {            if ( $file->isDir() ) {                 @ rmdir( $file->getRealPath() );            }else{                 @ unlink( $file->getRealPath() );            }        }        if( $delSelf ) { @ rmdir($dir); }    }    /**     * 遞歸的列出目錄,遍歷目錄     + -------------------------- +     * @param   $dir 要操作的目錄     */    public static function listDir ( $dir ) {        $dirIterator = self::getDirIterator( $dir, self::SELF_FIRST );        foreach ( $dirIterator as $file ) {            $filepath = str_replace('//' , '/' , $file->getPath() );            $deep = substr_count( $filepath , '/' );            if( $file->isDir() ) {                $str .= '<div style="color:blue;margin-left:'. 35*$deep .'px"> + ' ;                $str .=  $file->getBasename() .'</div>' ;            }elseif( $file->isFile() ){                $str .= '<div style="margin-left:'. 35*$deep .'px">' . $file->getBasename() .'</div>';            }        }        return $str ;    }    /**     * 統計目錄的信息(總字節數,文件數,目錄數)     + -----------------------------=----------- +     * @param   $dir 要操作的目錄     * @return  由目錄信息組成的數組     */    public static function countDir( $dir ) {        $countDir = $countFiles = $size = 0 ;        $dirIterator = self::getDirIterator( $dir, self::SELF_FIRST );        foreach ( $dirIterator as $file ) {            if( $file->isDir() ) {                $countDir++ ;            }elseif( $file->isFile() ){                $countFiles++ ;                $size += $file->getSize() ;            }        }        return array( 'countDir'=>$countDir, 'countFiles'=>$countFiles, 'size'=>$size.' Byte' );    }    /**     * 遞歸的創建目錄     + -------------------- +     * @param   $dir 要創建的目錄     * @param   $mode 所創建目錄的讀寫權限     */     public static function makeDir( $dir, $mode=0644 ) {        return mkdir( $dir, $mode, true );     }}/* ========================== 調用方法 =========================== */// Dir::delDir('./need_del_dir');// echo Dir::listDir('tools');// var_dump( Dir::countDir('tools') );// Dir::makeDir( 'aaa/ccc/ddd/eee/fff' );


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 娄底市| 万全县| 怀仁县| 林周县| 鹿邑县| 梓潼县| 镇原县| 明溪县| 三门县| 万全县| 永寿县| 都安| 宜都市| 库伦旗| 始兴县| 左权县| 济源市| 红河县| 星子县| 潮安县| 青铜峡市| 兰西县| 永嘉县| 如东县| 西乌珠穆沁旗| 宝兴县| 宜章县| 化州市| 金坛市| 长春市| 靖远县| 济阳县| 久治县| 磐安县| 永新县| 将乐县| 敖汉旗| 大荔县| 金堂县| 信阳市| 宜黄县|