2013-12-19 172 views
2

我想讓codeigniter刪除產品圖片文件夾。Codeigniter刪除目錄及其內容

此外,我試圖做的刪除功能需要刪除其所有內容,所以空或不,該文件夾被刪除。我猜測,它會使用遞歸類型的刪除...我根本不確定。

我已經嘗試了以下功能刪除:

function delete_directory($path) 
{ 
    $path=base_url().'products/thumb/'; 
    $this->load->helper("file"); // load the helper 
    delete_files($path, true); // delete all files/folders 
    //rmdir($dirname); 
    if(rmdir($path)){ 
     echo 'deleted';die;} 
    else{ 
     echo 'not';die; } 
    return true; 

} 

但它總是返回不

+0

見的警告在[文檔頁](http://ellislab.com/codeigniter/user-guide/helpers/file_helper.html)。你有權限刪除這些文件嗎?是否還有需要刪除的子目錄? (第二個參數傳遞爲TRUE)。 –

+0

嗨,如果你開發使用Ubuntu的檢查Apache錯誤日誌的錯誤。讓我們知道它是什麼顯示 – Anish

+0

檢查http://stackoverflow.com/questions/14178731/removing-directory-using-codeigniter – ripa

回答

0

創建一個幫手。見下圖: -

<?php if (! defined('BASEPATH')) exit('No direct script access allowed'); 

if (! function_exists('remove_directory')) 
{ 
function remove_directory($directory, $empty=FALSE) 
{ 
    if(substr($directory,-1) == '/') { 
     $directory = substr($directory,0,-1); 
    } 

    if(!file_exists($directory) || !is_dir($directory)) { 
     return FALSE; 
    } elseif(!is_readable($directory)) { 

    return FALSE; 

    } else { 

     $handle = opendir($directory); 
     while (FALSE !== ($item = readdir($handle))) 
     { 
      if($item != '.' && $item != '..') { 
       $path = $directory.'/'.$item; 
       if(is_dir($path)) { 
        remove_directory($path); 
       }else{ 
        unlink($path); 
       } 
      } 
     } 
     closedir($handle); 
     if($empty == FALSE) 
     { 
      if(!rmdir($directory)) 
      { 
       return FALSE; 
      } 
     } 
    return TRUE; 
    } 
} 
} 

然後加載這個助手在你的控制器和通話功能remove_directory()

/* End of file recursive_helper.php */ 
/* Location: /application/helpers/recursive_helper.php */ 
1

刪除目錄內容: 它可能會工作,我已經使用

$this->load->helper('directory'); 
$this->load->helper("file"); 

$dir_fiels = directory_map('resources/captcha/'); 
$len = sizeOf($dir_fiels); 
for($i=0; $i<$len;$i++){ 
    unlink('resources/captcha/'.$dir_fiels[$i]); 
} 
0

刪除所有文件:

delete_files('./path/to/your/directory/'); 

包括子文件夾(或多個):

delete_files('./path/to/your/directory/', TRUE); 
相關問題