繁体   English   中英

使用Laravel删除文件夹中除'placeholder.png'以外的所有文件

[英]Delete All Files Except 'placeholder.png' in folder using Laravel

所以我想在这里弄清楚这一切。 我在下面看到了有关如何删除目录中所有文件的帖子,但是我想从此删除操作中排除占位符图像。 我还没有找到我正在寻找的答案,所以这只是一个简短的问题。

在这里看看这个SO问题: Laravel File Storage删除目录中的所有文件

delete()接受要删除的文件数组。 因此,一种可能的解决方案是使用通配符选择器列出目录,然后从数组中过滤出排除列表。

$filesForDelete = array_filter(glob("path/to/files/*"), function($file) {
    return false === strpos($file, 'placeholder.png');
});

Storage::delete($filesForDelete);

当然,您的过滤器表达式可能会变得更好,更广泛,或者可以通过许多其他方式做同样的事情。

例如,您可以创建如下的辅助函数:

function deleteAllButFile($exclude)
{
    $filesForDelete = array_filter(glob("path/to/files/*"), function($file) use ($exclude) {
        return false === strpos($file, $exclude);
    });
    Storage::delete($filesForDelete);
}

// Call it like
deleteAllButFile('placeholder.png');

或您喜欢的任何其他方式。 尽您的想象力。

暂无
暂无

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

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