2011-06-04 17 views

Respuesta

13

Usted puede utilizar la función de glob():

Ejemplo 01:

<?php 
    // read all files inside the given directory 
    // limited to a specific file extension 
    $files = glob("./ABC/*.txt"); 
?> 

Ejemplo 02:

<?php 
    // perform actions for each file found 
    foreach (glob("./ABC/*.txt") as $filename) { 
    echo "$filename size " . filesize($filename) . "\n"; 
    } 
?> 

Ejemplo 03: Uso de RecursiveIteratorIterator

<?php 
foreach(new RecursiveIteratorIterator(new RecursiveDirectoryIterator("../")) as $file) { 
    if (strtolower(substr($file, -4)) == ".txt") { 
     echo $file; 
    } 
} 
?> 
+0

Hrrm ... ¿cómo los pone en una matriz? –

+0

@AJ, 'glob' devuelve un aray – Petah

+0

agregué el ejemplo superior $ archivos será el conjunto de rutas de archivos txt –

1

scandir enumera los archivos y directorios dentro de la ruta especificada.

+0

Esto incluye subdirectorios también, aunque ... no de que el PO quiere eso? –

2

Prueba esto:

if ($handle = opendir('.')) { 
    $files=array(); 
    while (false !== ($file = readdir($handle))) { 
     if(is_file($file)){ 
      $files[]=$file; 
     } 
    } 
    closedir($handle); 
} 
0

Aparte de scandir (@miku), que puede que encuentre glob interesante para la coincidencia de comodines.

0

Si sus archivos de texto es todo lo que tienes en el interior de la carpeta, la forma más sencilla es utilizar scandir, así:

<?php 
$arr=scandir('ABC/'); 
?> 

Si tiene otros archivos, debe utilizar pegote como en la respuesta de Lawrence .

1

aquí es la más eficiente forma la base de esta article 's puntos de referencia: la función

function getAllFiles() { 
    $files = array(); 
    $dir = opendir('/ABC/'); 
    while (($currentFile = readdir($dir)) !== false) { 
     if (endsWith($currentFile, '.txt')) 
      $files[] = $currentFile; 
    } 
    closedir($dir); 
    return $files; 
} 

function endsWith($haystack, $needle) { 
    return substr($haystack, -strlen($needle)) == $needle; 
} 

sólo tiene que utilizar los getAllFiles(), e incluso se puede modificarlo para tomar la ruta de la carpeta y/o la extensiones necesarias, es fácil.

+0

Hola, ¿cómo se hará eco de los nombres de archivo con eso? – user3771102

+1

@ user3771102 La matriz '$ files' devuelta contiene todos los nombres de archivo con sus extensiones y puede 'foreach' y repetirlas como' foreach ($ files as $ fileName) {echo $ fileName;} ', o si solo desea probar que está funcionando, puede hacer un eco de '$ currentFile' dentro del' if' interno, arriba de – AbdelHady

0
$dir = "your folder url"; //give only url, it shows all folder data 

if (is_dir($dir)){ 
    if ($dh = opendir($dir)){ 
     while (($file = readdir($dh)) !== false){ 
      if($file != '.' and $file != '..'){ 
       echo $file .'<br>'; 
      } 
     } 
     closedir($dh); 
    } 
} 

de salida:

xyz 
abc 
2017 
motopress 
+0

en realidad, no ha respondido la pregunta, en la parte "limitada a una extensión de archivo específica" – YakovL

+0

Proporcione alguna explicación sobre cómo se supone que tu respuesta resolverá la pregunta original. –

Cuestiones relacionadas