0
function copy_directory($source, $destination) {
if (is_dir($source)) {
@mkdir($destination);
$directory = dir($source);
while (FALSE !== ($readdirectory = $directory->read())) {
if ($readdirectory == '.' || $readdirectory == '..') {
continue;
}
$PathDir = $source . '/' . $readdirectory;
if (is_dir($PathDir)) {
copy_directory($PathDir, $destination . '/' . $readdirectory);
continue;
}
copy($PathDir, $destination . '/' . $readdirectory);
}
$directory->close();
}else {
copy($source, $destination);
}
}
這是我的腳本,用於將整個目錄和文件複製到另一個目標。但我有個小問題複製遞歸文件和文件夾,但跳過父項
我的文件夾都是這樣:
cinch.v2.1.1\cinch\cinch\other folders and files
loopy.v2.1.3\loopy\loopy\other folders and files
musy.v3.1.4\musy\musy\other folders and files
...
我需要複製剛剛過去的(深度3)不在話下,與子文件夾和文件,而不是整體結構糊塗,musy文件夾。如何更改腳本。
及複印件結構應該是這樣的:
cinch\other folders and files
loopy\other folders and files
musy\other folders and files
我開始
if (strpos($readdirectory, '.') === false && strpos($readdirectory, '_') === false) {
但這不工作,因爲它必須。
謝謝你,但你可以複製整體的一部分。如果我使用if($ last_entry!== FALSE){copy($ PathDir,$ destination。'/'。$ readdirectory);在循環之外,沒有任何東西被複制 – senzacionale
@senzacionale 1.你當然必須檢查'is_dir()'和2.使用'$ last_entry',因爲在while循環之後'$ readdirectory'是FALSE。 –
嗯mabye你沒有正確理解我。我需要將所有子目錄和文件夾的最後一個目錄複製爲第3層。對不起,如果我不夠清楚。我更新我的問題。 – senzacionale