PHP 遍历目录下的所有文件和目录

答案

  1. /**
  2. * 遍历一个路径下的所有文件和目录
  3. */
  4. function scanDir($dir)
  5. {
  6. $files = array();
  7. if (is_dir($dir)) {
  8. if ($handle = opendir($dir)) {
  9. while (($file = readdir($handle)) !== false) {
  10. if ($file != '.' && $file != '..') {
  11. $path = rtrim($dir, '/') . '/' . $file;
  12. if (is_dir($path)) {
  13. $files[$file] = scanDir($path);
  14. } else {
  15. $files[] = $path;
  16. }
  17. }
  18. }
  19. closedir($handle);
  20. }
  21. }
  22. return $files;
  23. }

测试代码;

  1. print_r(finddir('F:/Golang/src'));
  2. Array
  3. (
  4. [0] => F:/Golang/src/hello.go
  5. [1] => F:/Golang/src/src.exe
  6. [test] => Array
  7. (
  8. [0] => F:/Golang/src/test/sss.txt
  9. )
  10. )