使用此代码:
$path = public_path().'/root';
$files = array();
$folders = array();
if (is_dir($path)) {
$dirhandle = opendir($path);
while (($dir = readdir($dirhandle)) !== false) {
if(is_dir($dir) && $dir!= "." && $dir!= "..") {
$folders[] = $dir;
}
else if(is_file($dir)) {
$files[] = $dir;
}
}
closedir();
}
return $folders;`
我可以返回根文件夹中的文件,但不能返回根文件夹中的文件夹。
在根文件夹中,我有3个文件夹和4个文件。 您能帮我解决此错误吗?
答案 0 :(得分:0)
根据我的评论...
$contents = scandir('.'); // Working directory is current dir
foreach($contents as $key => $entry){
if(is_dir($entry)){
$directories[] = $entry;
} else {
$files[] = $entry;
}
}
echo('<pre>');
var_dump($directories, $files);
echo('</pre>');
答案 1 :(得分:0)
以下代码将解决您的问题。
$path = public_path().'/root';
foreach (glob($path . '/*') as $item) {
if (is_dir($item)) {
$folders[] = basename($item);
} else {
$files[] = basename($item);
}
}
var_dump($folders);
var_dump($files);
的更多详细信息
答案 2 :(得分:0)
您可以使用此代码段
$fnf = scandir('.');
$result = array();
$i=$j=0;
foreach($fnf as $key => $val){
if(is_dir($val)){
if($val == '..' || $val == '.') //Remove if you want to current and root directory (i.e . & ..)
continue;
$result['dir'][$i] = $val;
$i++;
} else {
$result['files'][$j] = $val;
$j++;
}
}
echo '<pre>';
print_r($result);