2013-12-19 119 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); 
相关问题