3 回答

TA貢獻(xiàn)1817條經(jīng)驗(yàn) 獲得超14個贊
$dirname = 'C:/Users/Admin/Desktop/test';
array_map('unlink', glob("$dirname/*.*"));
rmdir($dirname);
試試這個,這會刪除文件夾中存在的所有文件,還有那個文件夾

TA貢獻(xiàn)1982條經(jīng)驗(yàn) 獲得超2個贊
目錄可能包含其他目錄,因此您必須使用遞歸函數(shù)。
function removeDir($path) {
$files = glob("$path/*");
foreach ($files as $file) {
if (is_dir($file)) {
removeDir($file);
} else {
unlink($file);
}
}
rmdir($path);
}
現(xiàn)在足以調(diào)用 removeDir("/my/nice/path"); 如果您看到該目錄已經(jīng)為空,請嘗試檢查隱藏文件并確保您具有正確的權(quán)限。

TA貢獻(xiàn)1788條經(jīng)驗(yàn) 獲得超4個贊
我懷疑您已經(jīng)檢查過它不是文件權(quán)限問題。由于您的代碼適用于我而不適用于您,這讓我想知道它是否與 PHP 文件統(tǒng)計或真實(shí)路徑緩存有關(guān)。
取消鏈接文件應(yīng)自動清除單個文件的統(tǒng)計緩存。但是,以前已知PHP 錯誤會導(dǎo)致 rmdir 出現(xiàn)此問題。
嘗試在 foreach 塊中的 rmdir 語句之后執(zhí)行clearstatcache。
以前我使用過 glob (在其他答案中提到過)所以我不知道 RecursiveDirectoryIterator 如何重新處理文件句柄;作為一個長期嘗試,嘗試unset($files);
unset($it)
在您的最終 rmdir 之前銷毀這些對象 ( )。
- 3 回答
- 0 關(guān)注
- 141 瀏覽
添加回答
舉報