去…
* 于是添加了 $this->exist_dir 属性,用来记录这一情况下目标路径中存在的部分。于是新的问
* 题出来了:如何保存这一属性?
* 将整个功能整合到 $this->copy() 方法中,那么必然需要在这个函数中记录 $this->exist_dir
* 的变化,于是乎需要另外的一个有效的方法来阻止每一次操作中对其的更改。
* 作为变通,我使用的隐藏参数 $sub,这个参数无论如何,只要算法不变,永远在参数表的最
* 后一个。因此,方法开始变得不稳定,但这也没有办法,只能希望
程序员自己不要故意破坏。
* 在外部调用时,因为默认 FALSE,所以对 $this->exist_dir 写。内部递归时,显性 TRUE,不
* 该属性,保证有效性。
*/
if (!is_readable($src)) return $this->error_occur(0x0002, $src);
if ($dst[strlen($dst)-1]!=DIRECTORY_SEPARATOR) $dst .= DIRECTORY_SEPARATOR;
if (TRUE===$sub&&$src==$this->exist_dir) return TRUE; // 源路径为记录的目标路径
if (TRUE!==$sub) $this->exist_dir = ""; // 记录创建目录前目标目录路径中存在的目录路径
if (!$this->make_dir($dst)) return FALSE; // 创建目录
if (FALSE===$i=$this->list_dir($src)) return FALSE; // 读取目录出错
for ($j=0,$k=count($i);$j<$k;$j++) if (!$this->copy($i[$j]["location"], $dst.$i[$j]["name"],TRUE)) return FALSE;
&n