您必须在 RecursiveDirectoryIterator 上设置一个标志,因为默认情况下,当前 (".") 和父目录 ("..") 包含在列表中。这会导致类似 "returned a path ".." that is not in the base directory" 的错误消息。
要解决此问题,请使用 "SKIP_DOTS"
<?php
new RecursiveDirectoryIterator(
$srcRoot, FilesystemIterator::SKIP_DOTS
);
?>