Я обнаружил, что scandir()
- самый быстрый метод для таких операций:
function findRecursive($folder, $file) {
foreach (scandir($folder) as $filename) {
$path = $folder . '/' . $filename;
# $filename starts with desired string
if (strpos($filename, $file) === 0) {
return $path;
}
# search sub-directories
if (is_dir($path)) {
$result = findRecursive($path);
if ($result !== NULL) {
return $result;
}
}
}
}
Для копирования файла вы можете использовать copy()
:
copy(findRecursive($folder, $partOfFilename), $targetFile);