Copiar un directorio de una ubicación a otra

Copiar un directorio de una ubicación a otra

Problema

Desea copiar un directorio completo a otra ubicación.

Desea copiarlo de manera recursiva, todos los archivos y subdirectorios, a la nueva ubicación.

Solución

Utilizar el Archivo :: CopyDirectory () método.

$ Success = File :: CopyDirectory ($ SourCedir, $ DestinationDir);

El método devolverá verdadero si todos los archivos y subdirectorios se copian correctamente.

Si el directorio de destino no existe, se creará. Se creará recursivamente según sea necesario.

Discusión

Hay un tercer argumento opcional.

Internamente, el Archivo :: CopyDirectory () El método utiliza la clase de sistema de archivos de PHP para escanear los archivos y directorios para copiar. El sistema de archivos toma los indicadores como un segundo parámetros. Puedes pasar un tercer argumento a Archivo :: CopyDirectory () que se transmite al constructor de sistemas de archivos. Por defecto, Archivo :: CopyDirectory () usa la constante skip_dots.

Esto significa que los archivos que comienzan con puntos no se copian.

Tenga cuidado con esta tercera opción. El Archivo :: CopyDirectory () El método puede no comportarse como se esperaba a menos que comprenda bien cómo se utiliza el sistema de archivos para el recorrido de directorio.