如何将文件系统类的 glob 方法与 StorageFacade 结合使用?

这是关于Laravel 5的。

我可以看到一个叫做Illuminate\Filesystem\Filesystemglob($pattern, $flags = 0)

不幸的是,此方法不会反映在 Laravel 5 附带的默认值中。FilesystemAdapter

这将是伟大的,因为我需要做类似的事情(为了获取所有存储的刀片文件,从下划线开始。Storage::disk('local')->glob([_]*[.blade.php]);

实现这一目标的最干净的方法是什么?


答案 1

我认为您无法在此处运行,但您可以获取所有文件,然后过滤它们,例如:glob

$files = array_filter(Storage::disk('local')->files(), function ($file)
{
    return preg_match('/_(.*)\.blade\.php$/U', $file);
});

当然,您需要根据需要决定使用或(递归)。如果你有数千个文件,它可能不是最好的解决方案,但如果你没有,它应该足够了filesallFiles


答案 2

推荐