PHP碎碼——刪除除指定文件的其他文件及目錄

<?php

header('content-type:text/html;charset=utf-8');



$path = iconv("utf-8", "gb2312", 'C:/MyServer/www/PHP05/day06/2016/');

delete_dir($path);



/**
參數必須爲目錄,中文亦可
刪除目錄下--除指定文件或包涵置頂文件的目錄其他目錄和文件
*/
function delete_dir($path){

    // 返回一個 array,包含有目錄中的文件和目錄
    $arr = scandir($path);
    //echo '<pre>';
  // var_dump($arr);
    // 遍歷目錄下的每個子項(包括文件,目錄,. ,..)
    foreach ($arr as $value) {

        // 若名字爲.或者..的直接跳過
        if($value == '.' || $value == '..'){
            continue;
        }

        // 當前目錄路徑與 該目錄下子項分別拼接
        $in_path = $path.$value;

        // 判斷是文件或者目錄
        if (is_dir($in_path)) {

            // 在目錄路徑尾部追加 /
            $in_path .= '/';

            // 遞歸
            delete_dir($in_path);

            // 判斷該目錄是否爲空
            if(count(scandir($path)) == 2){
                rmdir($in_path);
            }


        } else {
            
            // 判斷文件名是否爲指定的名字,若不是,直接刪除
            if(basename($in_path) != iconv("UTF-8", "gb2312", "abc - 副本.txt")){

                // 刪除文件
                unlink($in_path);

            }


        }

    }



}









?>

代碼稍作修改可用於,搜索指定文件,提取指定文件,統計文件等等需要遍歷目錄的需求


轉戰PHP,願我能走的更遠


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章