public function getFiles($directory = '', $recursive = false, $filterPatterns = [])
{
try {
$contents = $this->fs->listContents($directory, $recursive);
if (!$contents) {
if (!$this->exists($directory)) {
throw new ReadException("Directory {$directory} does not exist.");
}
return [];
}
$proxy = $this;
$filterPatterns = (array) $filterPatterns;
$filter = function ($object) use($proxy, $filterPatterns) {
if ($object['type'] !== 'file') {
return false;
}
foreach ($filterPatterns as $filterPattern) {
if (!$proxy->match($filterPattern, $object['basename'])) {
return false;
}
}
return true;
};
return array_values(array_filter($contents, $filter));
} catch (Error $ex) {
} catch (Exception $ex) {
}
throw new ReadException("Directory {$directory} files could not be listed.", $ex);
}