有没有办法从不同的文件开始,例如。一个以“M”开头,而不是使用以下代码通过它(包括子目录)迭代目录中的第一个文件?:
$filename = "/Users/jMac-NEW/Desktop";
$it = new RecursiveDirectoryIterator($filename, RecursiveDirectoryIterator::SKIP_DOTS);
foreach (new RecursiveIteratorIterator($it) as $file) { ...
答案 0 :(得分:0)
您的RecursiveDirectoryIterator
是一个递归迭代器,因此您需要将其包装在RecursiveIteratorIterator
中以遍历子目录。
然后,您可以使用RegexIterator
创建模式来过滤该模式,以过滤掉您不想开始使用的文件。
$filename = __DIR__;
$it = new RegexIterator(
new RecursiveIteratorIterator(
new RecursiveDirectoryIterator($filename, RecursiveDirectoryIterator::SKIP_DOTS)
),
sprintf('|^%s[^A-La-l].*$|', preg_quote($filename . DIRECTORY_SEPARATOR, '|')
);
var_dump(iterator_to_array($it));