Библиотека программиста

29.03.2024 - Получить список директорий или файлов в каталоге

Сегодня я покажу, как получить список директорий в каком-то каталоге, а также как получить список файлов в определённом каталоге.




Итак, начнём с получения списка подкаталогов в определённом каталоге.
Функция получает один параметер, и это - путь к каталогу, список подкаталогов которого мы хотим узнать.
Функция использует рекурсию для получения подкаталогов любого уровня вложенности.

PHP - Код
function get_directory_list($path)
{
   if(
is_dir($path)){
       
$dh opendir($path);
       while (
false !== ($dir readdir($dh))) {
           if (
is_dir($path $dir) && $dir !== '.' && $dir !== '..') {
               
$subdir $path $dir '/';
               print 
$subdir "\n";
               
get_directory_list($subdir);
           } else {
               
next;
           }
       }
       
closedir($dh);
   } else {
       print 
"Директорий не найдено";
   }
}


Пример использования:

PHP - Код
$path "/usr/home/www/";
get_directory_list($path);


Если функция запускается в Windows, то надо кое-что изменить:
Указывая путь, обязательно нужно использовать двойные слэши, как это показано ниже.

PHP - Код
$path "C:\\wamp\\www\\";
Также в самой функции заменить строку
$subdir 
$path $dir '/';
на
$subdir 
$path $dir '\';


В результате на экране получим список всех подкаталогов указаной директории.

Получаем список файлов в конкретном каталоге без захода в субкаталоги.
Функция принимает один параметер - путь к каталогу, список файлов которого нам нужно получить.

PHP - Код
function list_directory($dir)
{
   
$file_list '';
   if (
$dh opendir($dir))
   {
      while ((
$file readdir($dh)) !== false)
      {
          if (
$file !== '.' AND $file !== '..')
          {
             
$current_file "{$dir}/{$file}";
             if (
is_file($current_file))
             {
                print 
"{$file}[b]";
             }
          }
       }
   }
}



Пример использования:

PHP - Код
$path "/usr/home/www/";   
list_directory($path);


Если функция запускается в Windows, то надо кое-что изменить:
Указывая путь, обязательно нужно использовать двойные слэши, как это показано ниже.

PHP - Код
$path "C:\\wamp\\www\\";


В итоге получим список файлов в указаном каталоге, причём только тех, что в корне указанного каталога.
Опубликовано на сайте: http://www.coders-library.ru
Прямая ссылка: http://www.coders-library.ru/index.php?name=news&op=view&id=200