91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

使用php怎么刪除指定的文件夾

發布時間:2021-01-19 16:34:22 來源:億速云 閱讀:191 作者:Leah 欄目:開發技術

今天就跟大家聊聊有關使用php怎么刪除指定的文件夾,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。

1、前言

目標:php刪除一個指定目錄

所使用的的php函數:is_dir,opendir,readdir,scandir,rmdir,closedir,等等(注:其他文件操作函數也可以完成,這里只列舉了本次使用的函數)

2、相關函數介紹

php文件操作的方法大致相同,已經在上一篇介紹過了,這里就不在重復介紹,這里就介紹一個新函數

rmdir

使用php怎么刪除指定的文件夾

詳情參考:http://www.w3school.com.cn/php/func_filesystem_rmdir.asp

3、代碼構成

**
 * [delAllFile description] 刪除指定目錄
 * @param [type] $dirName [description] 目錄
 * @param [type] $file [description] 記錄的過程文件
 * @param integer $type [description] 第一次默認打開新文件,第二次調用不打開
 * @return [type]   [description]
 */
public function delAllFile($dirName, $file, $type = 1) {
 $re = $this->checkDir($dirName);
 //默認第一次打開文件
 if($type){
 $file = fopen($file, 'w');//打開日志文件
 }
 if($re){
 $this->delFile($dirName, $file);
 }else{
 fwrite($file,"{$dirName}清理完成\r\n");
 }
}
/**
 * [checkDir description] 檢測文件夾是否為空,為空直接刪除
 * @param [type] $dirName [description] 文件夾名
 * @return [type]   [description]
 */
private function checkDir($dirName) {
 $a = scandir($dirName);//列出 images 目錄中的文件和目錄:
 //只包含.和..目錄的文件夾為空文件夾
 if(sizeof($a) == 2){
 rmdir($dirName);
 return false;
 }
 return true;
}
/**
 * [delFile description] 上傳文件的方法
 * @param [type] $dirName [description] 目錄
 * @param [type] $file [description] 記錄的文件
 * @return [type]   [description]
 */
private function delFile($dirName, $file) {
 $dh = openDir($dirName);
 while($handle = readdir($dh)){
 if($handle == '.' || $handle == '..') {
 continue;
 }
 $resource = $dirName.'/'.$handle;
 //判斷是否是文件夾
 if(is_dir($resource)) {
 //判斷文件夾是否為空
 $re = $this->checkDir($dirName);
 if($re){
 $this->delAllFile($resource, $file, 0);
 }else{
 fwrite($file,"{$resource}清理完成\r\n");
 continue;
 }
 }else{
 unlink($resource);
 }
 }
 
 //關掉資源,刪除目錄
 closedir($dh);//關閉目錄資源 
 fwrite($file,"{$dirName}清理完成\r\n");
 rmdir($dirName);//刪除空目錄 
}

然而,上面的代碼遇到子目錄層級高的時候,就容易出現一個警告,導致目錄無法刪除

使用php怎么刪除指定的文件夾

故對于層級高的子集,需要在最后加上一個循環判斷,來判斷是否可以刪除,來避免這個錯誤

// //關掉資源,刪除目錄
// closedir($dh);//關閉目錄資源 
// fwrite($file,"{$dirName}清理完成\r\n");
//rmdir($dirName);//刪除空目錄 
 
//每次目錄層級高了就報錯,故加個循環處理
$i = 1;
while($i){
 $re = $this->checkDir($dirName);
 echo "$dirName $i 次<br/><hr/>";
 $i++;
 if(!$re){
  $i = 0;
  closedir($dh);//關閉目錄資源 
  fwrite($file,"{$dirName}清理完成\r\n");  
 }
}

加上這層可以避免無法刪除的情況(有時候刪不掉是權限的問題)

4、結語

刪除一個目錄相對比較簡單,基本步驟為:

1、判斷是否是目錄,是目錄則遞歸調用自己,否則直接刪除文件;

2、判斷目錄是否為空,不為空 rmdir會拋出錯誤;

3、文件權限的問題(window,這個不是什么問題)

看完上述內容,你們對使用php怎么刪除指定的文件夾有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

php
AI

观塘区| 秀山| 乐东| 鄂托克前旗| 祁门县| 土默特右旗| 安福县| 沁源县| 商城县| 浦城县| 富顺县| 习水县| 鄂托克旗| 沁源县| 丹巴县| 安溪县| 乌兰浩特市| 巍山| 资阳市| 开封县| 南乐县| 乃东县| 榆林市| 景泰县| 梨树县| 河东区| 新闻| 台江县| 应城市| 江西省| 永年县| 永德县| 襄樊市| 乌恰县| 云浮市| 通辽市| 蒙自县| 苏尼特右旗| 梁河县| 交口县| 恩施市|