如何查找目录或文件夹及其子目录或子文件夹的所有文件名。 我使用的是scandir()
,但它仅从根目录返回文件和子目录名称。 如果有人有解决方案,那么请建议。如何在php中列出目录及其子目录的所有文件?
<?php
$dir = 'mydir/';
$files = scandir($dir);
?>
如何查找目录或文件夹及其子目录或子文件夹的所有文件名。 我使用的是scandir()
,但它仅从根目录返回文件和子目录名称。 如果有人有解决方案,那么请建议。如何在php中列出目录及其子目录的所有文件?
<?php
$dir = 'mydir/';
$files = scandir($dir);
?>
我找到了解决办法。 我已经创建了一个脚本,通过使用它我们可以获取或列出目录及其子目录的所有文件。 其工作fine.In有MYDIR假定为目录路径
function listDirFiles($dir){
foreach(glob("$dir/*") as $ff){
is_dir($ff) ? listDirFiles($ff) : $GLOBALS['a'][] = basename($ff);
}
}
listDirFiles('mydir');
echo "<pre>", print_r($GLOBALS['a']), "</pre>";
试试这个
$filelist = array();
if ($handle = opendir("."))
{
while ($entry = readdir($handle)) {
if (is_file($entry)) {
$filelist[] = $entry;
}
}
echo "<pre>";
print_r($filelist);
closedir($handle);
}
答案here可以给你更多的光。
我会做什么(如在答案中)是为每个目录运行一个foreach循环,然后列出目录中的文件。基本上只是冲洗和重复。在Linux中,PHP的功能类似于ls
命令,其功能类似于scandir()
。
这是我在我的项目中使用的,这将只返回文件,但不是文件夹,它是递归的。
$dir = new RecursiveIteratorIterator(new RecursiveDirectoryIterator("mydir/"));
$dir->setFlags(4096 | 8192);
foreach ($dir as $value) {
echo $dir->getSubPathname();
}
它也列出子目录名。我只想要文件名。 –
@AmitRajput我已更新回答 –
它也无法正常工作。其上市只有.php文件。 –