file mostrar - Cuenta cuántos archivos en el directorio php




una imagenes (10)

Quizás sea útil para alguien. En un sistema Windows, puede dejar que Windows haga el trabajo llamando al comando dir. Uso una ruta absoluta, como E:/mydir/mysubdir .

<?php 
$mydir='E:/mydir/mysubdir';
$dir=str_replace('/','\\',$mydir);
$total = exec('dir '.$dir.' /b/a-d | find /v /c "::"');

Estoy trabajando en un proyecto un poco nuevo. Quería saber cómo hacerlo, así que cuenta cuántos archivos hay en un directorio determinado.

<div id="header">
<?php 
    $dir = opendir('uploads/'); # This is the directory it will count from
    $i = 0; # Integer starts at 0 before counting

    # While false is not equal to the filedirectory
    while (false !== ($file = readdir($dir))) { 
        if (!in_array($file, array('.', '..') and !is_dir($file)) $i++;
    }

    echo "There were $i files"; # Prints out how many were in the directory
?>
</div>

Esto es lo que tengo hasta ahora (de la búsqueda). Sin embargo, no está apareciendo correctamente? He agregado algunas notas, así que siéntete libre de eliminarlas, solo para que pueda entenderlas lo mejor que pueda.

Si necesita más información o si siente que no describí esto lo suficiente, no dude en decirlo.


Como yo también necesitaba esto, tenía curiosidad sobre cuál alternativa era la más rápida.

Descubrí que, si lo único que quieres es un conteo de archivos, la solución de Baba es mucho más rápida que las demás. Estaba bastante sorprendido.

Pruébelo usted mismo:

<?php
define('MYDIR', '...');

foreach (array(1, 2, 3) as $i)
{
    $t = microtime(true);
    $count = run($i);
    echo "$i: $count (".(microtime(true) - $t)." s)\n";
}

function run ($n)
{
    $func = "countFiles$n";
    $x = 0;
    for ($f = 0; $f < 5000; $f++)
        $x = $func();
    return $x;
}

function countFiles1 ()
{
    $dir = opendir(MYDIR);
    $c = 0;
    while (($file = readdir($dir)) !== false)
        if (!in_array($file, array('.', '..')))
            $c++;
    closedir($dir);
    return $c;
}

function countFiles2 ()
{
    chdir(MYDIR);
    return count(glob("*"));
}

function countFiles3 () // Fastest method
{
    $f = new FilesystemIterator(MYDIR, FilesystemIterator::SKIP_DOTS);
    return iterator_count($f);
}
?>

Prueba de ejecución: (obviamente, glob() no cuenta los archivos de puntos)

1: 99 (0.4815571308136 s)
2: 98 (0.96104407310486 s)
3: 99 (0.26513481140137 s)

Yo uso esto:

count(glob("yourdir/*",GLOB_BRACE))

Demo de trabajo

<?php

$directory = "../images/team/harry/"; // dir location
if (glob($directory . "*.*") != false)
{
 $filecount = count(glob($directory . "*.*"));
 echo $filecount;
}
else
{
 echo 0;
}

?>

Deberías :

<div id="header">
<?php 
    // integer starts at 0 before counting
    $i = 0; 
    $dir = 'uploads/';
    if ($handle = opendir($dir)) {
        while (($file = readdir($handle)) !== false){
            if (!in_array($file, array('.', '..')) && !is_dir($dir.$file)) 
                $i++;
        }
    }
    // prints out how many were in the directory
    echo "There were $i files";
?>
</div>

Simplemente puede hacer lo siguiente:

$fi = new FilesystemIterator(__DIR__, FilesystemIterator::SKIP_DOTS);
printf("There were %d Files", iterator_count($fi));

Puedes obtener el conteo de archivos así:

$directory = "/path/to/dir/";
$filecount = 0;
$files = glob($directory . "*");
if ($files){
 $filecount = count($files);
}
echo "There were $filecount files";

donde el "*" es que puedes cambiar eso a un tipo de archivo específico si quieres "*.jpg" o puedes hacer múltiples tipos de archivos como este:

glob($directory . "*.{jpg,png,gif}",GLOB_BRACE)

la bandera GLOB_BRACE expande {a, b, c} para que coincida con 'a', 'b' o 'c'


<?php echo(count(array_slice(scandir($directory),2))); ?>

array_slice funciona de forma similar a la función substr , solo que funciona con matrices.

Por ejemplo, esto cortaría las primeras dos teclas de matriz de la matriz:

$key_zero_one = array_slice($someArray, 0, 2);

Y si omite el primer parámetro, como en el primer ejemplo, la matriz no contendrá los dos primeros pares clave / valor * ('.' Y '..').


  simple code add for file .php then your folder which number of file to count its      

    $directory = "images/icons";
    $files = scandir($directory);
    for($i = 0 ; $i < count($files) ; $i++){
        if($files[$i] !='.' && $files[$i] !='..')
        { echo $files[$i]; echo "<br>";
            $file_new[] = $files[$i];
        }
    }
    echo $num_files = count($file_new);

simple agregar es hecho ....






php file count directory