Este codigo empesara recorriendo desde donde esta ("./") y recorrera  un subdirectorio:
   Código PHP:
     
$dir = scandir("./");
 
echo "<ul>";
foreach($dir as $v1){
if($v1 != "." && $v1 != ".."){
 
if(is_file("./".$v1)){
echo "<li>".$v1;
}
 
////  si es un directorio se lo recorre ///////
if(is_dir("./".$v1)){
echo "<li>".$v1;
$dir2 = scandir("./".$v1);
echo "<ul>";
foreach($dir2 as $v2){
if($v2 != "." && $v2 != ".."){
 
if(is_file("./".$v1."/".$v2)){
echo "<li>".$v2;
}
 
 
////  si es un nuevo directorio se lo recorre ///////
if(is_dir("./".$v1."/".$v2)){
echo "<li>".$v2;
}
////  si es un nuevo directorio se lo recorre ///////
 
}
}
echo "</ul>";
}
////  si es un directorio se lo recorre ///////
 
 
 
}
}
echo "</ul>"; 
    
  
Esto se puede hacer con una funcion recursiva, 
la cual puede profundizar aun mas, 
si necesidad de tanto codigo