Copier le contenu entier d'un répertoire vers un autre en PHP
Un utilisateur a rencontré un problème en tentant de copier le contenu d'un répertoire entier vers un autre emplacement à l'aide de l'option fonction copy(). Le message d'erreur indiquait qu'aucun flux n'a été trouvé et que l'espace réservé . n'a pas pu être localisé.
Solution :
Le code fourni ne fonctionne que pour répertoires à un seul niveau. Pour copier des répertoires à plusieurs niveaux, une approche plus complète est nécessaire :
<code class="php">function recurseCopy( string $sourceDirectory, string $destinationDirectory, string $childFolder = '' ): void { $directory = opendir($sourceDirectory); if (is_dir($destinationDirectory) === false) { mkdir($destinationDirectory); } if ($childFolder !== '') { if (is_dir("$destinationDirectory/$childFolder") === false) { mkdir("$destinationDirectory/$childFolder"); } while (($file = readdir($directory)) !== false) { if ($file === '.' || $file === '..') { continue; } if (is_dir("$sourceDirectory/$file") === true) { recurseCopy("$sourceDirectory/$file", "$destinationDirectory/$childFolder/$file"); } else { copy("$sourceDirectory/$file", "$destinationDirectory/$childFolder/$file"); } } closedir($directory); return; } while (($file = readdir($directory)) !== false) { if ($file === '.' || $file === '..') { continue; } if (is_dir("$sourceDirectory/$file") === true) { recurseCopy("$sourceDirectory/$file", "$destinationDirectory/$file"); } else { copy("$sourceDirectory/$file", "$destinationDirectory/$file"); } } closedir($directory); }</code>
Utilisation :
Fournir les chemins d'accès aux répertoires source et de destination dans l'appel de fonction , et il copiera récursivement tous les fichiers et répertoires de la source vers la destination.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!