2017-04-17 166 views
0

我想要获取我的目录中的文件列表&在PHP语言中的数组中的子目录。

我有2个类型的代码:

1 - 首先代码:
该娄代码列出所有文件在一个数组,但也有文件夹和子目录数组:
列出目录和子目录中的MP3文件在PHP中

$files = dir_scan('pathAddress'); 
function dir_scan($folder) { 
$files = glob($folder); 
foreach ($files as $f) { 
    if (is_dir($f)) { 
     $files = array_merge($files, dir_scan($f .'/*')); // scan subfolder 
    } 
} 
return $files; 
} 
echo "<pre>"; 
print_r($files); 
echo "</pre>"; 

结果顶部代码:Click For View Image

2-二码:
此Bellow代码列出所有的MP3文件,但在字符串不是阵列! &我无法将其转换为数组。

$scan_it = new RecursiveDirectoryIterator("pathAddress"); 
foreach(new RecursiveIteratorIterator($scan_it) as $file) { 
if (strtolower(substr($file, -4)) == ".mp3") { 
echo "<pre>"; 
echo($file); 
echo "</pre>"; 
} 
} 

结果顶部代码:Click For View Image

最后,我想MP3文件的阵列中的所有目录指定位置&子目录。

感谢您的帮助

回答

1

此代码可以帮助你,它会检查所有文件夹和回报,将获得的文件名..

<?php 

function listFolderFiles($dir) 
{  
    $file_names = array(); 
    foreach (new DirectoryIterator($dir) as $fileInfo) { 
     if (!$fileInfo->isDot()) { 



      if ($fileInfo->isDir()) { 


       // checking directory empty or not, if not then append list  
       $isDirEmpty = !(new \FilesystemIterator($fileInfo->getPathname()))->valid(); 

       if($isDirEmpty != 1) 
       { 

        $file_names[] = listFolderFiles($fileInfo->getPathname()); 
       } 



      } 
      else 
      { 
       $file_names[] = $fileInfo->getPathname() ; 
      } 
     } 
    } 


    // Splicing Array 
     for ($i=0; $i<count($file_names); $i++) { 

      if (is_array($file_names[$i])) { 
        array_splice($file_names, $i, 1, $file_names[$i]); 
      } 
     } 


    return $file_names; 
} 


$res = listFolderFiles('main_folder_name'); 
echo '<pre>'; 
print_r($res); 


?> 
+0

谢谢你的代码工作@ –

相关问题