您好,登錄后才能下訂單哦!
本篇內(nèi)容主要講解“php怎么去除給定路徑的文件或目錄”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學(xué)習(xí)“php怎么去除給定路徑的文件或目錄”吧!
在對文件/目錄進行操作時,不僅可以對文件中的數(shù)據(jù)進行操作,還可以對文件/目錄本身進行操作(例如刪除文件/目錄)。今天我們就來給大家介紹一下刪除指定文件或者目錄的方法。
一:刪除指定文件操作
刪除文件可以使用unlink($filename,$context)
函數(shù),它可以刪除指定的文件$filename
,可選參數(shù)$context
用于規(guī)定文件句柄的環(huán)境。如果執(zhí)行成功時返回 TRUE,失敗時返回 FALSE。
下面通過具體代碼示例來看看:
例1:刪除同目錄下的“test.txt”文件
<?php header("content-type:text/html;charset=utf-8"); $file = 'test.txt'; if(file_exists($file)){ if(unlink($file)){ echo $file.' 刪除成功!'; }else{ echo $file.' 刪除失敗!'; } }else{ echo $file.' 不存在!'; } ?>
輸出結(jié)果為:
在重新打開目錄,看看文件,會發(fā)現(xiàn)“test.txt”文件已經(jīng)不存在了。
例2:刪除D:\demo目錄下的“text.txt”文件
<?php header("content-type:text/html;charset=utf-8"); $file = 'D:/demo/text.txt'; if(file_exists($file)){ if(unlink($file)){ echo $file.' 刪除成功!'; }else{ echo $file.' 刪除失??!'; } }else{ echo $file.' 不存在!'; } ?>
輸出結(jié)果為:
在重新打開目錄,看看文件,會發(fā)現(xiàn)“text.txt”文件已經(jīng)不存在了。
如何想要刪除一個目錄中的全部文件,可以利用循環(huán)和readdir()獲取D:\demo目錄下的全部文件和目錄(不包括子目錄),然后將其中的文件全部刪除:
<?php header("content-type:text/html;charset=utf-8"); $dir = 'D:/demo'; if (is_dir($dir)) { $info = opendir($dir); while (($file = readdir($info)) !== false) {//用不全等于是區(qū)分如果文件夾名字為0的時候,那么0!==false,仍然可以遍歷 if ($file != "." && $file != ".." ) { $path = $dir . '/' . $file; if(is_dir($path)){ continue; } unlink($path); } } echo '文件刪除成功!'; closedir($info); } ?>
輸出結(jié)果為:
在重新打開目錄,看看文件,會發(fā)現(xiàn)只剩下一個“img”文件夾還存在了。
二:刪除指定目錄操作
刪除目錄可以使用rmdir($dir,$context)
函數(shù),$context是一個可省略的參數(shù),用于規(guī)定文件句柄的環(huán)境。如果執(zhí)行成功時返回 TRUE,失敗時返回 FALSE。
需要注意的是:使用 rmdir() 函數(shù)刪除指定目錄時,這個目錄必須是空的,而且要有相應(yīng)的權(quán)限。如果刪除一個不為空的目錄還會產(chǎn)生一個 E_WERNING 級別的錯誤。
下面通過具體代碼示例來看看:刪除D:\demo目錄下的空目錄“img”
<?php header("content-type:text/html;charset=utf-8"); $dir = 'D:/demo/img'; if(is_dir($dir)){ if(rmdir($dir)) echo '目錄刪除成功!'; }else{ echo "目錄不存在!"; } ?>
輸出結(jié)果為:
在重新打開目錄,看看文件,會發(fā)現(xiàn)空目錄“img”不存在了。
但大部分情況下,我們需要刪除的目錄并不為空,里面又會包含很多子文件和子目錄,這要怎么操作才能刪除指定目錄及其子文件和目錄呢?
具體實現(xiàn)方法:可以遍歷這個目錄下的所有文件和文件夾,并用遞歸的方式來逐個刪除這個目錄下的所有文件和文件夾
下面給出具體的實現(xiàn)代碼:
<?php function deldir($path){ //如果是目錄則繼續(xù) if(is_dir($path)){ //掃描一個文件夾內(nèi)的所有文件夾和文件并返回數(shù)組 $p = scandir($path); //如果 $p 中有兩個以上的元素則說明當前 $path 不為空 if(count($p)>2){ foreach($p as $val){ //排除目錄中的.和.. if($val !="." && $val !=".."){ //如果是目錄則遞歸子目錄,繼續(xù)操作 if(is_dir($path.$val)){ //子目錄中操作刪除文件夾和文件 deldir($path.$val.'/'); }else{ //如果是文件直接刪除 unlink($path.$val); } } } } } //刪除目錄 return rmdir($path); } //設(shè)置需要刪除的文件夾 $path = "D:/demo/"; //調(diào)用函數(shù),傳入路徑 deldir($path); ?>
到此,相信大家對“php怎么去除給定路徑的文件或目錄”有了更深的了解,不妨來實際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進入相關(guān)頻道進行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。