Ver archivos de una carpeta

Hola,
Me gustaría saber que función hace que poniendo la ruta de una carpeta me salga el listado de archivos que hay. He visto que con el php se puede hacer pero no se como.
Muchas gracias

6 respuestas

Respuesta
1
Creo que este script te servirá:
<?
$path="mi/directorio/";
$directorio=dir($path);
echo "Directorio ".$path.":<br><br>";
while ($archivo = $directorio->read())
{
echo $archivo."<br>";
}
$directorio->close();
?>
Función Descripción Sintaxis
opendir Abre un directorio situado en $path y le asigna un identificador $dir $dir = opendir($path)
readdir Lee un elemento del directorio $dir abierto previamente con opendir y desplaza el puntero al elemento siguiente readdir($dir)
rmdir Elimina el directorio $dir rmdir($dir)
mkdir Crea un directorio situado en $path con los derechos de acceso $derechos (entero) mkdir($path, $derechos)
rewinddir Vuelve el puntero de lectura del directorio $dir al primer elemento rewinddir($dir)
closedir Cierra el directorio $dir abierto previamente con opendir closedir($dir)
------------------------------------------------------------------------------------------
<?
//definimos el path de acceso
$path = "mi/camino";
//abrimos el directorio
$dir = opendir($path);
//Mostramos las informaciones
while ($elemento = readdir($dir))
{
echo $elemento."<br>";
}
//Cerramos el directorio
closedir($dir);
?>
------------------------------------------------------------------------------------------
Respuesta
1
Como muestra un botón:
<?php
$dir = "/etc/php5/";
// Open a known directory, and proceed to read its contents
if (is_dir($dir)) {
if ($dh = opendir($dir)) {
while (($file = readdir($dh)) !== false) {
echo "filename: $file : filetype: " . filetype($dir . $file) . "\n";
}
closedir($dh);
}
}
?>
http://www.php.net/
Respuesta
1
De esta forma:
$handle = opendir($directorio);
while ($file = readdir($handle)) {
if($file!= "." && $file != ".." && $file!="Thumbs.db"){
echo $file;
}
}
Donde $directorio es el path o la dirección donde esta tu directorio.
Respuesta
1
El procedimiento de un directorio comienza con la creación de un manejador. Para ello se utiliza la función opendir(), que recibe la ruta de acceso al directorio y devuelve un manejador del mismo: una referencia para su manipulación. En caso de producirse alguna anomalía el valor devuelto por la función sea false.
La sintaxis de opendir() es la siguiente:
int opendir(string ruta_a_directorio)
Una vez que se dispone del manejador de directorio se pueden realizar tres operaciones sobre el: lectura, rebobinado o cierre cuyo formato es el siguiente:
string readdir(int manejador_de_directorio)
void rewinddir(int manejador_de_directorio)
void rclosedir(int manejador_de_directorio)
La función readdir() recibe como parámetros un manejador de directorio y devuelve una cadena con el nombre del siguiente elemento del directorio(nombre de fichero o subdirectorio), incluidos los nombres simbólicos del directorio actual(".") y del padre del directorio actual("..").
Ejemplo:
$manejador = opendir('.');
echo "Elementos del directorio actual:<br>\n";
while ($elemento = readdir($manejador))
echo "$elemento<br>\n";
closedir($manejador);
Cualquier cosa me cuentas
Almoanto
Respuesta
1
Con este ejemplo:
$dir = "../varios";
$dh = opendir($dir);
while (false !== ($nombre_archivo = readdir($dh))) {
$archivos[] = $nombre_archivo;
}
sort($archivos);
print_r($archivos);
rsort($archivos);
print_r($archivos);
Tendías que cambiar la forma en que lo muestra nada más...
Respuesta
1
Aquí tienes una rutina recursiva que lo hace. El resultado es un array con carpetas y ficheros. Fíjate en el código. Si no entiendes algo o no se adapta a lo que quieres, avisame:
<?
function Ocultaficheros($file) {
$quita=array ('.', '..');
$ret=false;
foreach($quita as $v) {
if ($file==$v) $ret=true;
}
return $ret;
}
function GetFileList($path, &$a){
$d=array(); $f=array();
$nd=0; $nf=0;
$hndl=opendir($path);
while($file=readdir($hndl)) {
if (OcultaFicheros($file)) continue;
if (is_dir($path.'\\'.$file))
$d[$nd++]=$file;
else
$f[$nf++]=$file;
}
closedir($hndl);
sort($d);
sort($f);
$n=1;
for ($i=0;$i<count($d);$i++) {
GetFileList($path.'\\'.$d[$i].'\\', $a[$n]);
$a[$n++][0]=$d[$i];
}
for ($i=0;$i<count($f);$i++){
$a[$n++]=$f[$i];
}
}
// Ejemplo, lista el directorio donde esté este fichero
$raiz="../";
GetFileList($raiz,$array);
foreach($array as $v){
if (is_array($v)) {
echo "<b>".$raiz.$v[0]."/</b><br>";
for ($i=1;$i<count($v);$i++){
echo " ".$v[$i]."<br>";
}
}
}
?>

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas