ディレクトリの内容を別の場所にコピーしようとすると、コード コピー ("old_location/*.*",") new_location/") では、ストリームが見つからないことを示すエラーが発生する場合があります。これは、コピー関数でアスタリスク (*) が単独で使用されている場合に発生する可能性があります。
サブディレクトリやファイルを含むディレクトリの内容全体を効果的にコピーするには、以下のような再帰関数を使用できます。
<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>
この再帰関数を使用すると、ディレクトリの内容全体を別の場所に効率的にコピーでき、すべてのサブディレクトリとファイルが適切に転送されるようになります。
以上がPHP を使用してディレクトリの内容を再帰的にコピーするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。