php遞歸刪除文件,php遞歸刪除文件夾

本文目錄一覽:

php刪除一個路徑下的所有文件夾和文件的方法

php遍歷一個文件夾內的所有文件和文件夾,並刪除所有文件夾和子文件夾下的所有文件的代碼,通過遞歸方式實現達到清空一個目錄的效果,代碼簡單實用。

也適合在thinkphp中清理緩存,在thinkphp中可以把下面代碼寫入./Application/Admin/Common/function.php文件中,再在控制器調用這個函數進行清理操作。

用到的函數:

scandir($path)

遍歷一個文件夾所有文件並返回數組。

unlink($filename)

刪除文件。

rmdir($path)

只刪除空文件夾

?php

//設置需要刪除的文件夾

$path

=

“./Application/Runtime/”;

//清空文件夾函數和清空文件夾後刪除空文件夾函數的處理

function

deldir($path){

//如果是目錄則繼續

if(is_dir($path)){

//掃描一個文件夾內的所有文件夾和文件並返回數組

$p

=

scandir($path);

foreach($p

as

$val){

//排除目錄中的.和..

if($val

!=”.”

$val

!=”..”){

//如果是目錄則遞歸子目錄,繼續操作

if(is_dir($path.$val)){

//子目錄中操作刪除文件夾和文件

deldir($path.$val.’/’);

//目錄清空後刪除空文件夾

@rmdir($path.$val.’/’);

}else{

//如果是文件直接刪除

unlink($path.$val);

}

}

}

}

}

//調用函數,傳入路徑

deldir($path);

總結

以上所述是小編給大家介紹的php刪除一個路徑下的所有文件夾和文件的方法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網站的支持!

您可能感興趣的文章:PHP循環輸出指定目錄下的所有文件和文件夾路徑例子(簡單實用)php獲取文件夾路徑內的圖片以及分頁顯示示例PHP獲取文件相對路徑的方法查找php配置文件php.ini所在路徑的二種方法

php怎麼刪除文件夾和文件夾下的所有文件

正常的思路來說,先循環刪除文件夾下的所有文件,當沒有文件時再刪除文件夾,如果你要刪除文件夾和所有文件直接本地刪除就好了,但是一般沒有這種操作。刪除文件可以用unlink($filepath)函數,$filepath是文件路徑,然後還有一個封裝函數rm_empty_dir($path)刪除所有空目錄:

/** 刪除所有空目錄

* @param String $path 目錄路徑

*/

function rm_empty_dir($path){

if(is_dir($path) ($handle = opendir($path))!==false){

while(($file=readdir($handle))!==false){// 遍歷文件夾

if($file!=’.’ $file!=’..’){

$curfile = $path.’/’.$file;// 當前目錄

if(is_dir($curfile)){// 目錄

rm_empty_dir($curfile);// 如果是目錄則繼續遍歷

if(count(scandir($curfile))==2){//目錄為空,=2是因為.和..存在

rmdir($curfile);// 刪除空目錄

}

}

}

}

closedir($handle);

}

}

具體的還要你自己稍加修改,希望可以幫到你。

PHP 刪除目錄下的文件

PHP刪除指定目錄下的文件示例:

?php

//定義刪除文件函數

function deleteFile($dirName) {

    // 判斷是否為有效句柄

    if ($handle = opendir( $dirName )) {

        // 循環打開的句柄條目(打開成功,則返迴文件名;打開失敗,則返回false)

        while ( false !== ($item = readdir ($handle))) {

            if ($item != “.”  $item != “..”) {

                // 判斷是否為目錄

                if (is_dir($dirName . “/” . $item )) {

                    // 遞歸刪除

                    deleteFile($dirName . “/” . $item);

                } else {

                    if (unlink($dirName . “/” . $item)) {

                        echo “成功刪除{$dirName}文件夾下的{$item}文件br/”;

                    }

                }

            }

        }

        // 關閉打開的句柄

        closedir( $handle );

    }

}

//測試【testFile目錄下有NewFile.html】

deleteFile(“testFile”);

//成功刪除testFile文件夾下的NewFile.html文件

?

PHP unlink與rmdir刪除目錄及目錄下所有文件實例代碼

在php中刪除文件與目錄其實很簡單只要兩個函數一個是unlink一個rmdir函數,如果要實現刪除目錄及目錄下的文件我們需要利用遞歸來操作.

函數代碼:僅刪除指定目錄下的文件,不刪除目錄文件夾,代碼如下:

class

shanchu

{

//循環目錄下的所有文件

function

delFileUnderDir(

$dirName=」../Smarty/templates/templates_c」

)

{

if

(

$handle

=

opendir(

「$dirName」

)

)

{

while

(

false

!==

(

$item

=

readdir(

$handle

)

)

)

{

if

(

$item

!=

「.」

$item

!=

「..」

)

{

if

(

is_dir(

「$dirName/$item」

)

)

{

delFileUnderDir(

「$dirName/$item」

);

}

else

{//開源代碼phpfensi.com

if(

unlink(

「$dirName/$item」

)

)echo

「成功刪除文件:

$dirName/$itembr

/n」;

}

}

}

closedir(

$handle

);

}

}

}

假設需要刪除一個名叫」upload」目錄下的所有文件,但無需刪除目錄文件夾,你可以通過以下代碼完成:

?php

delFileUnderDir(

『upload’);?

php刪除所有目錄,代碼如下:

function

deltree($pathdir)

{

echo

$pathdir;//調試時用的

if(is_empty_dir($pathdir))//如果是空的

{

rmdir($pathdir);//直接刪除

}

else

{//否則讀這個目錄,除了.和..外

$d=dir($pathdir);

while($a=$d-read())

{

if(is_file($pathdir.’/’.$a)

($a!=’.’)

($a!=’..’)){unlink($pathdir.’/’.$a);}

//如果是文件就直接刪除

if(is_dir($pathdir.’/’.$a)

($a!=’.’)

($a!=’..’))

{//如果是目錄

if(!is_empty_dir($pathdir.’/’.$a))//是否為空

{//如果不是,調用自身,不過是原來的路徑+他下級的目錄名

deltree($pathdir.’/’.$a);

}

if(is_empty_dir($pathdir.’/’.$a))

{//如果是空就直接刪除

rmdir($pathdir.’/’.$a);

}

}

}

$d-close();

echo

“必須先刪除目錄下的所有文件”;//我調試時用的

}

}

function

is_empty_dir($pathdir)

{

//判斷目錄是否為空

$d=opendir($pathdir);

$i=0;

while($a=readdir($d))

{

$i++;

}

closedir($d);

if($i2){return

false;}

else

return

true;

}

PHP刪除目錄及目錄下所有文件,代碼如下:

?php

//循環刪除目錄和文件函數

function

delDirAndFile(

$dirName

)

{

if

(

$handle

=

opendir(

「$dirName」

)

)

{

while

(

false

!==

(

$item

=

readdir(

$handle

)

)

)

{

if

(

$item

!=

「.」

$item

!=

「..」

)

{

if

(

is_dir(

「$dirName/$item」

)

)

{

delDirAndFile(

「$dirName/$item」

);

}

else

{

if(

unlink(

「$dirName/$item」

)

)echo

「成功刪除文件:

$dirName/$itembr

/n」;

}

}

}

closedir(

$handle

);

if(

rmdir(

$dirName

)

)echo

「成功刪除目錄:

$dirNamebr

/n」;

}

}

//假設需要刪除一個名叫」upload」的同級目錄即此目錄下的所有文件,你可以通過以下代碼完成:

delDirAndFile(

『upload’);

?

總結

以上所述是小編給大家介紹的PHP

unlink與rmdir刪除目錄及目錄下所有文件實例代碼,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網站的支持!

用PHP如何刪除指定的文件?

php中刪除文件有一個系統函數:\x0d\x0aunlink ( string $filename );\x0d\x0a參數$filename 表示文件的路徑,可以是相對路徑也可以是絕對路徑。\x0d\x0a列如,當前目錄下有個文件:test.html\x0d\x0a可以執行 unlink ( ‘test.html’ );來刪除\x0d\x0a另外刪除目錄用函數:rmdir();用法與unlink ()相同

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/196962.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-03 13:29
下一篇 2024-12-03 13:29

相關推薦

發表回復

登錄後才能評論