本文实例讲述了PHP实现递归复制整个文件夹的类。分享给大家供大家参考。具体如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
|
<?php
/*
* 文件夹复制类
*/
class CopyFile
{
public $fromFile ;
public $toFile ;
/*
* $fromFile 要复制谁
* $toFile 复制到那
*/
function copyFile( $fromFile , $toFile ){
$this ->CreateFolder( $toFile );
$folder1 =opendir( $fromFile );
while ( $f1 =readdir( $folder1 )){
if ( $f1 != "." && $f1 != ".." ){
$path2 = "{$fromFile}/{$f1}" ;
if ( is_file ( $path2 )){
$file = $path2 ;
$newfile = "{$toFile}/{$f1}" ;
copy ( $file , $newfile );
} elseif ( is_dir ( $path2 )){
$toFiles = $toFile . '/' . $f1 ;
$this ->copyFile( $path2 , $toFiles );
}
}
}
}
/*
* 递归创建文件夹
*/
function CreateFolder( $dir , $mode = 0777){
if ( is_dir ( $dir ) || @ mkdir ( $dir , $mode )){
return true;
}
if (! $this ->CreateFolder(dirname( $dir ), $mode )){
return false;
}
return @ mkdir ( $dir , $mode );
}
}
//使用方法
//引入本类,直接new copyFile('要复制谁','复制到那');
//$file = new CopyFile('aaaa/aaaaa','bbbbb/bbbb');
?>
|
希望本文所述对大家的php程序设计有所帮助。