2011-03-17 17 views
26

Necesito saber si hay alguna manera de crear una nueva carpeta si la ruta no existe. Cuando intento abrir() una ruta, dice NO such File or Directory exists Intenté abrir el archivo usando 'w' y 'w +', pero no puedo crear una nueva carpeta. ¿Hay alguna forma de lograrlo sin usar mkdir()? Porque necesito extraer los nombres de directorio solos de la ruta a mkdir() cada vez. Cualquier ayuda es apreciada. Gracias ...PHP: fopen para crear carpetas

Respuesta

65

fopen no puede crear directorios.

Tendrá que usar algo como:

$filename = '/path/to/some/file.txt'; 
$dirname = dirname($filename); 
if (!is_dir($dirname)) 
{ 
    mkdir($dirname, 0755, true); 
} 
+0

Impresionante ... Muchas gracias ... Funcionó perfectamente ... – Vivek

3

No se puede usar fopen para crear carpetas.
Para crear una carpeta que tiene que utilizar mkdir

para las operaciones que hay que repetir cada vez, hay una característica del lenguaje llamado "funciones definidas por el usuario". Característica menos conocida de PHP, como se puede decir a juzgar por las respuestas stackoverflow.

+3

> para las operaciones que hay que repetir cada vez, hay una característica del lenguaje llamado "usuario de SPL funciones definidas ". La característica menos conocida de PHP, como se puede decir a juzgar por las respuestas de stackoverflow: LOL – nbrogi

6

fopen no crea ni abrir carpetas, sólo los archivos. Primero debe verificar con is_dir si existe, si no crearla. mkdir tiene una opción de creación recursiva.

if (!is_dir($myDir)) { 
    mkdir($myDir, 0777, true); // true for recursive create 
} 

Si usted está buscando una manera de abrir un directorio y leer su contenido debería mirar DirectoryIterator

+0

Gracias por su respuesta ... – Vivek