繁体   English   中英

删除除特定文件和具有特定扩展名的文件以外的所有文件

[英]Delete All Except Specific Files and Files With Specific Extension

我要删除文件夹中的所有文件,但包含以下内容的文件除外:

  1. 特定文件名
  2. 特定的文件扩展名

以下代码在上述第一点成功,但在第二点不成功。

   function deletefiles()
    {
    $path = 'files/';

    $filesToKeep = array(
        $path."example.jpg",
        $path."123.png",
        $path."*.mkv"
    );

    $dirList = glob($path.'*');

    foreach ($dirList as $file) {
        if (! in_array($file, $filesToKeep)) {
            if (is_dir($file)) {
                rmdir($file);
            } else {
                unlink($file);
            }//END IF
        }//END IF
    }//END FOREACH LOOP
    }

我怎样才能同时达到这两个条件?

您需要更改一下功能:

    <?php

function deletefiles()
{
    $path = 'files/';

    $filesToKeep = array(
        $path . "example.jpg",
        $path . "123.png",

    );

    $extensionsToKeep = array(
        "mkv"
    );

    $dirList = glob($path . '*');

    foreach ($dirList as $file) {

        if (!in_array($file, $filesToKeep)) {
            if (is_dir($file)) {
                rmdir($file);
            } else {
                $fileExtArr = explode('.', $file);
                $fileExt = $fileExtArr[count($fileExtArr)-1];
                if(!in_array($fileExt, $extensionsToKeep)){
                    unlink($file);
                }
            }//END IF
        }//END IF
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM