下面是一個不爲人知的小代碼,名爲DirectoryIterator。它沒有完整的記錄在PHP網站上,但繼承人的精神:
創建一個文件和文件夾旁邊的複選框列表,把它們全部放在一個數組中。
$Directory = new RecursiveDirectoryIterator('c:/dev/source');
$Iterator = new RecursiveIteratorIterator($Directory);
?><form method="post"><?
foreach($Iterator as $r){
if($r->isDot()) continue;
echo "<input type=\"checkbox\" name=\"copy[]\" value=\"".($r->getSubPathName())."\"> ".$r->getSubPathName() . " <br>";
}
?></form><?
現在這部分添加到該文件
<?php
if($_POST){
if(is_array($_POST['copy'])) foreach($_POST['copy'] as $c){
@copy($c, str_replace('c:/dev/source','c:/dev/dest', $c));
echo "copied: $c to ". str_replace('c:/dev/source','c:/dev/dest', $c) . "<br>";
}
}
頂我不完全知道是什麼導致你$r->getSubPathName()
讓你可以讓我知道,如果輸出數組?如果是這樣的話,你可能會用$ r-> getSubPath()替換它,然後在複製它時將「c:/ dev/source」添加到變量$ c中?
延伸閱讀:
here
從[php'rename()'](http://php.net/manual/en/function.rename.php)函數開始。 – sarnold 2011-03-24 10:58:49