php中通過遞迴實現刪除目錄下的所有檔案。

2021-06-22 01:35:59 字數 793 閱讀 4618

最近遇到乙個實際問題,需要清空制定目錄下的所有檔案及清空資料庫。清空資料庫不難,但要如何遞迴刪除乙個目錄下的所有檔案呢。 於是去網上研究了下資料再加上自己琢磨解決了這一問題。

先貼**:

<?php

function delfile($dirname) else unlink("$dirname/$item");

} }closedir($handle);

}?>

<?php

delfile('/home/sources');

?>

先講解幾個函式:

opendir() :函式開啟乙個目錄控制代碼,可由 closedir(),readdir() 和 rewinddir() 使用。

若成功,則該函式返回乙個目錄流,否則返回 false 以及乙個 error。可以通過在函式名前加上 "@" 來隱藏 error 的輸出。例如$dir=@ opendir("image");

readdir():返回由opendir函式開啟的目錄控制代碼中的條目,即順序返回資料夾中的檔名,順序按照檔案系統中制定的排序方式。

id_dir():即檢測引數檔案是否為目錄,如果是返回true.

un_link():即刪除制定檔案。

所以程式執行思路為:函式呼叫主目錄,然後順序檢測每一檔案是否為目錄,如果為目錄則遞迴呼叫函式,並對不為目錄的檔案進行刪除,直到遍歷完所有的檔案。

這個程式只實現刪除資料夾裡面的內容,而沒有刪除資料夾本身,如果要實現這一目的,加上下面**即可:

rmdir($dirname);

Linux中通過setfacl實現目錄下建立檔案

在linux 系統中,可以通過setfacl 來實現目錄下建立檔案或子目錄,並繼承父目錄的許可權。下面以 root 用普通使用者 user1 在目錄 mnt下 root redhat 7 mnt setfacl m u user1 rwx share 為目錄新增ower user1 並賦予rwx 的...

PHP刪除目錄及目錄下所有檔案

函式 php刪除目錄及目錄下所有檔案 功能 php操作檔案。刪除指定目錄及 或 該目錄下的所有檔案。語言 php 函式 一 刪除目錄及目錄下的所有檔案?12 3 4 56 7 8 910 11 12 13 14 15 16 17 18 19 20 21 22 23 24 functiondelfil...

函式 PHP刪除目錄及目錄下所有檔案

函式 一 刪除目錄及目錄下的所有檔案 迴圈刪除目錄和檔案函式 function deldirandfile dirname else closedir handle if rmdir dirname echo 成功刪除目錄 dirname n 函式 二 僅刪除指定目錄下的檔案,不刪除目錄資料夾。迴圈...