PHP でディレクトリ全体の内容を別の場所にコピーする
ユーザーが、 copy()関数。エラー メッセージは、ストリームが見つからず、プレースホルダー . が見つからないことを示しました。
解決策:
提供されたコードは、次の場合にのみ機能します。単一レベルのディレクトリ。複数のレベルのディレクトリをコピーするには、より包括的なアプローチが必要です。
<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>
使用法:
関数呼び出しでソース ディレクトリと宛先ディレクトリへのパスを指定します。 、すべてのファイルとディレクトリをソースから宛先に再帰的にコピーします。
以上がPHP でディレクトリ全体を再帰的にコピーするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。