取得多级目录下指定文件
时间: 2023-12-26 07:04:52 浏览: 43
好的,如果你想要在多级目录下取得指定的文件,可以使用类似于上面提到的递归函数的方式来实现。以下是一个示例代码,可以在指定目录下查找指定文件名的文件,并返回文件的路径:
```
function findFile($dir, $filename) {
$list = scandir($dir);
foreach ($list as $file) {
if ($file == '.' || $file == '..') {
continue;
}
$path = $dir . '/' . $file;
if (is_dir($path)) {
$result = findFile($path, $filename);
if ($result) {
return $result;
}
} else {
if ($file == $filename) {
return $path;
}
}
}
return false;
}
// 示例用法
$path = findFile('/path/to/directory', 'filename.txt');
if ($path) {
echo "文件路径为:$path";
} else {
echo "未找到指定文件";
}
```
这个函数首先使用 `scandir()` 函数读取指定目录下的所有文件和子目录,然后遍历每个文件名。如果文件名是 `.` 或 `..`,则跳过。否则,如果文件是一个目录,就递归调用 `findFile()` 函数来处理子目录。如果文件是一个普通文件,并且文件名与指定的文件名相同,则返回该文件的路径。如果在指定目录下未找到指定文件,则返回 false。