Problème
Vous souhaitez copier un répertoire entier dans un autre endroit.
Vous souhaitez le copier récursivement, tous les fichiers et sous-répertoires, dans le nouvel emplacement.
Solution
Utilisez le Fichier :: copyDirectory ()
méthode.
La méthode reviendra vrai si tous les fichiers et sous-répertoires sont copiés avec succès.
Si le répertoire de destination n'existe pas, il sera créé. Il sera créé récursivement au besoin.
Discussion
Il y a un troisième argument facultatif.
En interne, le Fichier :: copyDirectory ()
La méthode utilise la classe FileSystemiterator de PHP pour scanner les fichiers et les répertoires à copier. Le fichiermiterator prend les drapeaux comme un deuxième paramètre. Vous pouvez passer un troisième argument à Fichier :: copyDirectory ()
qui est transmis au constructeur de limeSystemiterator. Par défaut, Fichier :: copyDirectory ()
utilise la constante Skip_dots.
Cela signifie que les fichiers commençant par des points ne sont pas copiés.
Soyez prudent en utilisant cette troisième option. Le Fichier :: copyDirectory ()
La méthode ne peut pas se comporter comme prévu à moins que vous ne compreniez bien comment le Systemiterator de fichiers est utilisé pour la traversée du répertoire.