如何删除除Codeigniter中的某些文件以外的所有文件

时间:2018-10-19 10:10:58

标签: php codeigniter codeigniter-3

这是我当前的代码,我以为我已经弄清楚了,但这只是删除目录中的所有文件。

$this->load->helper('file');
$videos = get_filenames('z/course/');
    foreach ($videos as $key => $value) {
        if ($value != 'default_video.mp4') {
            delete_files('z/course/'.$value);
        }
    }

有什么解决方法吗?

2 个答案:

答案 0 :(得分:1)

delete_files()方法,用于删除给定目录内的所有文件。 参考:https://www.codeigniter.com/userguide3/helpers/file_helper.html#delete_files

要删除单个文件,请使用unlink()

$this->load->helper('file');
$videos = get_filenames('z/course/');
    foreach ($videos as $key => $value) {
        if ($value != '' && $value != 'default_video.mp4') {
           // delete_files('z/course/'.$value);
           $file = 'z/course/'.$value;
           if (is_readable($file) && unlink($file)) {
              echo "The file has been deleted";
           } else {
              echo "The file was not found or not readable and could not be deleted";
           }
        }
    }

答案 1 :(得分:0)

您可以使用strpos()功能检查文件名中是否存在default_video.mp4

$this->load->helper('file');
$videos = get_filenames('z/course/');
    foreach ($videos as $key => $value) {
        if (strpos($value, 'default_video.mp4') !== false) {
            delete_files('z/course/'.$value);
        }
    }

您应该:

if (strpos($value, 'default_video.mp4') !== false) {
   //do something 
 }