使用Codeigniter删除一个目录中的所有文件


Delete all files in one directory with Codeigniter

我有一个问题,当我想删除一个目录下的所有文件与Codeigniter..

我一直在观看和尝试任何教程,只是有一个问题…它总是不能删除任何文件。

这是我的脚本:

@view

<a href="<?php echo base_url()?>sia/delete_allfile" title="Delete All File" onclick="return confirm('Are you sure you want delete all files?')">Delete All File</a>

@ controller

public function delete_allfile()
{
    $files = glob($_SERVER['DOCUMENT_ROOT'].'upload/perizinan/*'); // get all file names
    if(is_dir($path))
    {
        $this->session->set_flashdata('message',
        '
            Wrong directory !
        ');
        redirect('sia/perizinan');
    }else
    {
        foreach($files as $file)
        { // iterate files
            if(is_file($file))
            unlink($file); // delete file
        }
        redirect('sia/perizinan');
    }
}

尝试使用Codeigniter的文件帮助器来删除文件。这正是你想要做的。当然,如果文件夹上的权限是错误的,它将不起作用(它需要权限:rwxrwxrwx(0777)),但它使代码更清晰,更容易调试。在控制器的构造函数中添加:

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

和替换:

foreach($files as $file)
    { // iterate files
        if(is_file($file))
        unlink($file); // delete file
    }

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

或者如果你想递归地包含子文件夹

delete_files('./path/to/directory/', TRUE);

这将删除文件夹/子文件夹中的所有文件,所以如果你想要更多的控制,你最好使用unlink,这样你就可以决定要删除什么了

您是否在页面或日志文件中获得任何错误消息?您是否检查了文件夹/文件权限?您可以使用chmod和fileperms函数

这很简单。你可以试试这个

    $files = glob('/home/xxx/public_html/project_name/application/*');
 foreach($files as $file){ 
 if(is_file($file))
 unlink($file);
  }

它可能会工作,我已经使用了

$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]);
}