搜尋
首頁後端開發php教程詳解php刪除指定資料夾方法
詳解php刪除指定資料夾方法Aug 23, 2017 am 11:55 AM
php資料夾方法

下面小編就為大家帶來一篇php 刪除指定資料夾的實例講解。小編覺得蠻不錯的,現在就分享給大家,也給大家做個參考。一起跟著小編過來看看吧

1、前言

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

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

2、相關函數介紹

php檔案操作的方法大致相同,已經在上一篇介紹過了,這裡就不在重複介紹,這裡就介紹一個新函數

rmdir

#詳情參考: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);//删除空目录 
}

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

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


// //关掉资源,删除目录
// 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刪除指定資料夾方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
swsetup 是什么文件夹swsetup 是什么文件夹Feb 20, 2023 pm 04:51 PM

swsetup是惠普软件的一个备份文件夹,如果使用系统恢复盘恢复系统、系统文件、随机软件、驱动,都可以在这个文件夹中找到;swsetup文件夹可以删除,如果用户需要更大的可用硬盘空间,可以删除此目录,不会影响用户。

如何调整Win10文件夹字体大小?如何调整Win10文件夹字体大小?Jun 30, 2023 pm 08:02 PM

win10电脑文件夹字体大小怎么设置?win10文件夹字体大小设置方法是首先点击左下角开始,然后选择打开设置。很多小伙伴不知道怎操作,小编下面整理了文件夹字体大小设置方法步骤,如果你感兴趣的话,跟着小编一起往下看看吧!文件夹字体大小设置方法步骤1、首先点击左下角开始,然后选择打开设置。2、之后去点击“系统”。3、点击左侧的“屏幕”。4、在右边找到“更改文本、应用等项目的大小”。5、最后点击下拉,选择100%即可。以上就是【win10电脑文件夹字体大小怎么设置-文件夹字体大小设置方法步骤】全部内容

如何与其他人共享 OneDrive 文件或文件夹?如何与其他人共享 OneDrive 文件或文件夹?May 08, 2023 pm 06:42 PM

MicrosoftOneDrive允许用户将文件和文件夹存储在云上并从任何地方访问它们。如果您允许他们使用OneDrive应用程序,您还可以授予他们访问文件的权限。这使人们可以轻松地交换文件或文件夹。您还可以更改文件的访问权限,例如他们是否可以编辑或仅查看它,还可以添加密码以及到期日期。因此,即使您忘记停止访问某些文件,访问权限也会在指定日期后自动过期。在这篇文章中,我们将教你如何使用两种不同的方法在OneDrive中与他人共享文件或文件夹。如何在OneDrive中与人共享文件或文件夹方法

如何为所有文件夹在Windows 11中设置相同的文件夹视图?如何为所有文件夹在Windows 11中设置相同的文件夹视图?Apr 26, 2023 pm 10:31 PM

在Windows中,我们可以在文件资源管理器中查看文件夹、文件和其他文档。您可能已经观察到,很少有文件和文件夹具有较小的图标,而很少有较大的图标。因此可以理解,有一个定制选项可用。根据文件的性质,默认设置了不同的文件夹模板。例如,在包含照片的名为Picture的文件夹中,图像具有不同的视图。包含音乐文件的音乐文件夹将具有不同的模板。同样,对于文档、视频等文件夹,每个文件夹根据其类别包含不同的模板。您还可以选择文件夹的模板并将其设置为所有其他相同类型的文件夹。在本文中,我们将学习如何将文件夹视图应

如何在 Windows 11 和 10 中向受控文件夹访问添加或删除文件夹如何在 Windows 11 和 10 中向受控文件夹访问添加或删除文件夹Apr 18, 2023 pm 03:31 PM

微软推出了一种防病毒软件,有助于保护文件夹免受任何其他应用程序的攻击,称为Defender防病毒。在勒索软件攻击中,其中的所有文件夹和文件都受到攻击,您将无法使用它们,因为它将被另一个病毒进程锁定。因此,当您将文件夹添加到受控文件夹访问时,它会提供额外的安全性并防止这些勒索软件攻击。默认情况下,Windows将用户目录中的文档、图片、视频等文件夹添加到受控文件夹访问权限。您需要以系统管理员身份登录才能从受控文件夹访问中添加或删除文件夹。在这篇文章中,我们已经解释了一些可以做到这一点的方法。如何使

如何解决Python的文件夹未找到错误?如何解决Python的文件夹未找到错误?Jun 24, 2023 pm 04:32 PM

Python是一种流行的编程语言,但在使用中,经常会遇到一些错误。其中一个常见的错误是“文件夹未找到”。这个错误很容易让新手或者不熟悉Python的人感到困惑。在本文中,我们将讨论如何解决这个问题。1.确认文件夹路径是否正确在Python中,处理文件和文件夹的时候,需要指定文件和文件夹的路径。如果路径设置错误,那么就会导致程序无法找到文件夹。因此,我们需要先

Win11系统怎么显示隐藏文件夹Win11系统怎么显示隐藏文件夹Jun 29, 2023 am 11:50 AM

Win11系统怎么显示隐藏文件夹?我们日常使用电脑的时候,会有些比较私密文件储存在电脑上,因为比较私密所以不想要别人看到,这种情况我们可以选择隐藏文件夹,需要的时候也可以显示出来,如果你不知道如何隐藏显示文件夹,小编下面整理了Win11系统显示隐藏文件夹教程,感兴趣的话,一起往下看看吧!Win11系统怎么显示隐藏文件夹1、右键点击想要隐藏的文件夹,选择属性,在里面勾选【隐藏】。确定后这个文件夹就是隐藏的状态,一般情况下别人看不到。文件也可按此方法隐藏起来。如何把隐藏文件夹显示出来1、在本地磁盘里

文件夹变成exe文件是什么病毒文件夹变成exe文件是什么病毒Jul 11, 2023 am 10:28 AM

文件夹变成exe文件是文件夹病毒,其处理方法有:1、确保计算机安装了最新的杀毒软件;2、不要打开未知来源的电子邮件附件或下载可疑的网络文件;3、定期备份计算机的重要文件也是一项重要的防范措施。

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
3 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

mPDF

mPDF

mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

Dreamweaver Mac版

Dreamweaver Mac版

視覺化網頁開發工具

EditPlus 中文破解版

EditPlus 中文破解版

體積小,語法高亮,不支援程式碼提示功能

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。