¿Cómo contar archivos en un directorio usando PHP?

PHP contiene muchas funciones como count(), iterator_count(), glob(), openddir(), readdir(), scandir() y FilesystemIterator() para contar el número de archivos en un directorio.
Función count() : las funciones count() son una función de array que se utiliza para contar todos los elementos en una array o algo en un objeto. Esta función usa COUNT_RECURSIVE como un modo para contar recursivamente la array que es útil para contar todos los elementos de una array multidimensional.
Sintaxis: 

int count( mixed $array_or_countable, int $mode = COUNT_NORMAL )

Función glob(): La función glob() es una función del sistema de archivos que busca todos los posibles nombres de ruta que coincidan con el patrón de acuerdo con las reglas utilizadas por la función libc glob().
Sintaxis:  

glob( string $pattern, int $flags = 0 )

Programa 1: Este programa usa la función glob() y count() para contar todos los archivos dentro del directorio.  

php

<?php
 
// Set the current working directory
$directory = getcwd()."/";
 
// Initialize filecount variable
$filecount = 0;
 
$files2 = glob( $directory ."*" );
 
if( $files2 ) {
    $filecount = count($files2);
}
 
echo $filecount . "files ";
 
?>

Producción: 

20 files

Función openddir() : La función openddir() se utiliza para abrir un identificador de directorio. La ruta del directorio que se va a abrir se envía como un parámetro a la función opendir() y devuelve un recurso de identificador de directorio en caso de éxito o FALSO en caso de error.
Sintaxis:  

opendir( string $path, resource $context )

Función readdir(): La función readdir() es una función de directorio que lee las entradas del identificador de directorio que se devuelven en el orden en que están almacenadas por el sistema de archivos.
Sintaxis:  

readdir( resource $dir_handle )

Programa 2: Este programa usa las funciones openddir() y readdir() para contar todos los archivos dentro del directorio. 

php

<?php
 
// Set the current working directory
$dir = getcwd();
 
// Initialize the counter variable to 0
$i = 0;
 
if( $handle = opendir($dir) ) {
     
    while( ($file = readdir($handle)) !== false ) {
        if( !in_array($file, array('.', '..')) && !is_dir($dir.$file))
            $i++;
    }
}
 
// Display result
echo "$i files";
 
?>

Producción: 

20 files

Función scandir(): La función scandir() se utiliza para devolver una array de archivos y directorios del directorio especificado. La función scandir() enumera los archivos y directorios que están presentes dentro de una ruta específica.
Sintaxis:  

scandir( string $directory, int $sorting_order = SCANDIR_SORT_ASCENDING, resource $context )

Programa 3: Este programa usa la función scandir() y count() para contar todos los archivos dentro del directorio. 

php

<?php
 
// Set the current working directory
$directory = getcwd()."/";
  
// Returns array of files
$files1 = scandir($directory);
  
// Count number of files and store them to variable
$num_files = count($files1) - 2;
 
echo $num_files . " files";
 
?>

Producción: 

20 files

Función FilesystemIterator(): La función FilesystemIterator::__construct() se utiliza para crear un nuevo iterador de sistema de archivos a partir de la ruta.
Sintaxis:  

FilesystemIterator::__construct( string $path, 
      int $flags = FilesystemIterator::KEY_AS_PATHNAME 
      | FilesystemIterator::CURRENT_AS_FILEINFO 
      | FilesystemIterator::SKIP_DOTS )

Función iterator_count(): La función iterator_count() es SPL y se utiliza para contar los elementos del iterador.
Sintaxis:  

int iterator_count( $iterator )

Programa 4: Este programa usa la función FilesystemIterator() e iterator_count() para contar todos los archivos dentro del directorio.

php

<?php
 
$fi = new FilesystemIterator(__DIR__, FilesystemIterator::SKIP_DOTS);
 
printf("%d files", iterator_count($fi));
 
?>

Producción:  

20 files 

Publicación traducida automáticamente

Artículo escrito por VigneshKannan3 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *