Lorsque vous tentez de copier le contenu d'un répertoire vers un autre emplacement, la copie de code ("old_location/*.*"," new_location/") peut rencontrer une erreur indiquant que le flux n'est pas trouvé. Cela peut se produire lorsqu'un astérisque (*) est utilisé seul dans la fonction de copie.
Pour copier efficacement l'intégralité du contenu d'un répertoire, y compris ses sous-répertoires et fichiers, nous pouvons utiliser une fonction récursive comme celle ci-dessous :
<code class="php">function recurseCopy( string $sourceDirectory, string $destinationDirectory, string $childFolder = '' ): void { // Open the source directory $directory = opendir($sourceDirectory); // Check if the destination directory exists, if not, create it if (is_dir($destinationDirectory) === false) { mkdir($destinationDirectory); } // If there's a child folder specified, create it if it doesn't exist if ($childFolder !== '') { if (is_dir("$destinationDirectory/$childFolder") === false) { mkdir("$destinationDirectory/$childFolder"); } // Loop through the files in the source directory while (($file = readdir($directory)) !== false) { // Ignore current and parent directories if ($file === '.' || $file === '..') { continue; } // If the current file is a directory, recursively copy it if (is_dir("$sourceDirectory/$file") === true) { recurseCopy("$sourceDirectory/$file", "$destinationDirectory/$childFolder/$file"); } // If it's a file, simply copy it else { copy("$sourceDirectory/$file", "$destinationDirectory/$childFolder/$file"); } } // Close the source directory closedir($directory); // Recursion ends here return; } // Loop through the files in the source directory while (($file = readdir($directory)) !== false) { // Ignore current and parent directories if ($file === '.' || $file === '..') { continue; } // If the current file is a directory, recursively copy it if (is_dir("$sourceDirectory/$file") === true) { recurseCopy("$sourceDirectory/$file", "$destinationDirectory/$file"); } // If it's a file, simply copy it else { copy("$sourceDirectory/$file", "$destinationDirectory/$file"); } } // Close the source directory closedir($directory); }</code>
En utilisant cette fonction récursive, nous pouvons copier efficacement l'intégralité du contenu d'un répertoire vers un autre emplacement, garantissant que tous les sous-répertoires et fichiers sont correctement transférés.
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!