Sé, , esto suena soo fácil. Pero me parece que no puede encontrar la respuesta correcta en Internet.

Uno de la solución que encontré fue usar is_dir.

if(is_dir($dir))
  echo 'directory exists';
else
  echo 'drectory not exist';

Pero esto es mal— Todos hace esta función es comprobar si el $dir es un directorio, no comprueba si el directorio existe, o no. En otras palabras, si pongo:

$rootDir = "C:\Documents and Settings\test\My Documents\Image Directory\Me Dog\";

a continuación, la función devolverá true, aunque usted puede encontrar ningún ejemplo de directorio en el servidor web.

Alguna idea?

  • Este fue un reporte de error en php 5.2, aunque no puedo encontrar el enlace al informe de error.
InformationsquelleAutor Graviton | 2009-04-14

4 Comentarios

  1. 53

    Debería funcionar correctamente. De is_dir() documentación:

    Devuelve TRUE si el nombre de archivo existe
    y es un directorio
    , FALSE
    de lo contrario.

    Bien, de todos modos si no prueba esto:

    if(file_exists($dir) && is_dir($dir))

    Por CIERTO. los resultados de estas funciones se almacenan en caché en el stat de caché. Uso clearstatcache() limpiar el caché.

    • +1 para el clearstatcache info, siempre es útil saber
  2. 2

    Usted probablemente quiera usar opendir() después de is_dir() está de acuerdo en que la ruta de acceso (podría) ser un directorio.

    Si el recurso devuelto por opendir() es válida, usted sabe que usted tiene un directorio, y ya tiene un identificador para leer.

    Sólo asegúrese de llamar closedir(), de cualquier manera, si un identificador válido es devuelto.

    Edición:

    Esta respuesta supone que va a ser abrir el directorio de cualquier manera. Si usted simplemente necesita para asegurar un camino está cuerdo /válido, file_exists() es mucho más barato.

  3. 0

    Usted podría intentar esto:

    if(is_dir($dir) && is_writeable($dir))
    {
        //...
    }
    • no es una solución para el problema, porque no puede escribir los directorios de directorios demasiado.

Dejar respuesta

Please enter your comment!
Please enter your name here