2011-08-20 635 views

Respuesta

23

Esos son los directorios actuales (.) y el padre (..). Están presentes en todos los directorios y se usan para referirse al directorio en sí y a su padre directo.

4

En convención de Unix. es un enlace al directorio actual mientras ... es un enlace al directorio principal. Ambos existen como un archivo en el índice del directorio.

+0

¿Puede citar una fuente que dice que esta es una convención de UNIX? DOS y Windows tienen '.' y' ..' también, ¿no? – phihag

+2

Windows tiene esos también, no es específico de Unix. – Mat

+0

Es una convención de Unix; eso no impide que sea una convención de DOS y Windows también. –

83

Hay dos entradas presentes en cada anuncio en el directorio:

  • . se refiere al directorio actual
  • .. se refiere al directorio padre (o la raíz, si el directorio actual es la raíz)

puede eliminarlos de los resultados mediante la filtración de ellas, de los resultados de scandir:

$allFiles = scandir(__DIR__); // Or any other directory 
$files = array_diff($allFiles, array('.', '..')); 
+8

Agradable. Esto también se puede condensar en una sola línea: '$ files = array_diff (scandir (__ DIR__), array ('.', '..'));' (ver http://www.electrictoolbox.com/php-scandir- find-files /). – SharpC

1

Para eliminar . y ..scandir del uso de esta función:

function scandir1($dir) 
{ 
    return array_values(array_diff(scandir($dir), array('..', '.'))); 
} 

Los array_values comando vuelve a los índices de la matriz para que se inicie desde 0. Si usted no necesita la matriz volver a clasificar, a continuación, la respuesta aceptada funcionará bien. Simplemente: array_diff(scandir($dir), array('..', '.')).

Cuestiones relacionadas