首页
Web开发
Windows程序
编程语言
数据库
移动开发
系统相关
微信
其他好文
会员
首页
>
移动开发
> 详细
php简单实用的操作文件工具类(创建、移动、复制、删除)
时间:
2016-08-30 22:44:45
阅读:
295
评论:
0
收藏:
0
[点我收藏+]
标签:
php简单实用好用的文件及文件夹复制函数和工具类(创建、移动、复制、删除)
function
recurse_copy
(
$src
,
$dst
)
{
// 原目录,复制到的目录
$dir
=
opendir
(
$src
);
@mkdir
(
$dst
);
while
(
false
!==
(
$file
=
readdir
(
$dir
))
)
{
if
((
$file
!=
‘.‘
)
&&
(
$file
!=
‘..‘
))
{
if
(
is_dir
(
$src
.
‘/‘
.
$file
)
)
{
recurse_copy
(
$src
.
‘/‘
.
$file
,
$dst
.
‘/‘
.
$file
);
}
else
{
copy
(
$src
.
‘/‘
.
$file
,
$dst
.
‘/‘
.
$file
);
}
}
}
closedir
(
$dir
);
}
echo recurse_copy
(
"原文件夹"
,
"目录文件夹"
);
复制
还有更流弊的工具类:
<?
php
/**
* 操纵文件类
*
* 例子:
* FileUtil::createDir(‘a/1/2/3‘); 测试建立文件夹 建一个a/1/2/3文件夹
* FileUtil::createFile(‘b/1/2/3‘); 测试建立文件 在b/1/2/文件夹下面建一个3文件
* FileUtil::createFile(‘b/1/2/3.exe‘); 测试建立文件 在b/1/2/文件夹下面建一个3.exe文件
* FileUtil::copyDir(‘b‘,‘d/e‘); 测试复制文件夹 建立一个d/e文件夹,把b文件夹下的内容复制进去
* FileUtil::copyFile(‘b/1/2/3.exe‘,‘b/b/3.exe‘); 测试复制文件 建立一个b/b文件夹,并把b/1/2文件夹中的3.exe文件复制进去
* FileUtil::moveDir(‘a/‘,‘b/c‘); 测试移动文件夹 建立一个b/c文件夹,并把a文件夹下的内容移动进去,并删除a文件夹
* FileUtil::moveFile(‘b/1/2/3.exe‘,‘b/d/3.exe‘); 测试移动文件 建立一个b/d文件夹,并把b/1/2中的3.exe移动进去
* FileUtil::unlinkFile(‘b/d/3.exe‘); 测试删除文件 删除b/d/3.exe文件
* FileUtil::unlinkDir(‘d‘); 测试删除文件夹 删除d文件夹
*/
class
FileUtil
{
/**
* 建立文件夹
*
* @param string $aimUrl
* @return viod
*/
function
createDir
(
$aimUrl
)
{
$aimUrl
=
str_replace
(
‘‘
,
‘/‘
,
$aimUrl
);
$aimDir
=
‘‘
;
$arr
=
explode
(
‘/‘
,
$aimUrl
);
$result
=
true
;
foreach
(
$arr
as
$str
)
{
$aimDir
.=
$str
.
‘/‘
;
if
(!
file_exists
(
$aimDir
))
{
$result
=
mkdir
(
$aimDir
);
}
}
return
$result
;
}
/**
* 建立文件
*
* @param string $aimUrl
* @param boolean $overWrite 该参数控制是否覆盖原文件
* @return boolean
*/
function
createFile
(
$aimUrl
,
$overWrite
=
false
)
{
if
(
file_exists
(
$aimUrl
)
&&
$overWrite
==
false
)
{
return
false
;
}
elseif
(
file_exists
(
$aimUrl
)
&&
$overWrite
==
true
)
{
FileUtil
::
unlinkFile
(
$aimUrl
);
}
$aimDir
=
dirname
(
$aimUrl
);
FileUtil
::
createDir
(
$aimDir
);
touch
(
$aimUrl
);
return
true
;
}
/**
* 移动文件夹
*
* @param string $oldDir
* @param string $aimDir
* @param boolean $overWrite 该参数控制是否覆盖原文件
* @return boolean
*/
function
moveDir
(
$oldDir
,
$aimDir
,
$overWrite
=
false
)
{
$aimDir
=
str_replace
(
‘‘
,
‘/‘
,
$aimDir
);
$aimDir
=
substr
(
$aimDir
,
-
1
)
==
‘/‘
?
$aimDir
:
$aimDir
.
‘/‘
;
$oldDir
=
str_replace
(
‘‘
,
‘/‘
,
$oldDir
);
$oldDir
=
substr
(
$oldDir
,
-
1
)
==
‘/‘
?
$oldDir
:
$oldDir
.
‘/‘
;
if
(!
is_dir
(
$oldDir
))
{
return
false
;
}
if
(!
file_exists
(
$aimDir
))
{
FileUtil
::
createDir
(
$aimDir
);
}
@
$dirHandle
=
opendir
(
$oldDir
);
if
(!
$dirHandle
)
{
return
false
;
}
while
(
false
!==
(
$file
=
readdir
(
$dirHandle
)))
{
if
(
$file
==
‘.‘
||
$file
==
‘..‘
)
{
continue
;
}
if
(!
is_dir
(
$oldDir
.
$file
))
{
FileUtil
::
moveFile
(
$oldDir
.
$file
,
$aimDir
.
$file
,
$overWrite
);
}
else
{
FileUtil
::
moveDir
(
$oldDir
.
$file
,
$aimDir
.
$file
,
$overWrite
);
}
}
closedir
(
$dirHandle
);
return
rmdir
(
$oldDir
);
}
/**
* 移动文件
*
* @param string $fileUrl
* @param string $aimUrl
* @param boolean $overWrite 该参数控制是否覆盖原文件
* @return boolean
*/
function
moveFile
(
$fileUrl
,
$aimUrl
,
$overWrite
=
false
)
{
if
(!
file_exists
(
$fileUrl
))
{
return
false
;
}
if
(
file_exists
(
$aimUrl
)
&&
$overWrite
=
false
)
{
return
false
;
}
elseif
(
file_exists
(
$aimUrl
)
&&
$overWrite
=
true
)
{
FileUtil
::
unlinkFile
(
$aimUrl
);
}
$aimDir
=
dirname
(
$aimUrl
);
FileUtil
::
createDir
(
$aimDir
);
rename
(
$fileUrl
,
$aimUrl
);
return
true
;
}
/**
* 删除文件夹
*
* @param string $aimDir
* @return boolean
*/
function
unlinkDir
(
$aimDir
)
{
$aimDir
=
str_replace
(
‘‘
,
‘/‘
,
$aimDir
);
$aimDir
=
substr
(
$aimDir
,
-
1
)
==
‘/‘
?
$aimDir
:
$aimDir
.
‘/‘
;
if
(!
is_dir
(
$aimDir
))
{
return
false
;
}
$dirHandle
=
opendir
(
$aimDir
);
while
(
false
!==
(
$file
=
readdir
(
$dirHandle
)))
{
if
(
$file
==
‘.‘
||
$file
==
‘..‘
)
{
continue
;
}
if
(!
is_dir
(
$aimDir
.
$file
))
{
FileUtil
::
unlinkFile
(
$aimDir
.
$file
);
}
else
{
FileUtil
::
unlinkDir
(
$aimDir
.
$file
);
}
}
closedir
(
$dirHandle
);
return
rmdir
(
$aimDir
);
}
/**
* 删除文件
*
* @param string $aimUrl
* @return boolean
*/
function
unlinkFile
(
$aimUrl
)
{
if
(
file_exists
(
$aimUrl
))
{
unlink
(
$aimUrl
);
return
true
;
}
else
{
return
false
;
}
}
/**
* 复制文件夹
*
* @param string $oldDir
* @param string $aimDir
* @param boolean $overWrite 该参数控制是否覆盖原文件
* @return boolean
*/
function
copyDir
(
$oldDir
,
$aimDir
,
$overWrite
=
false
)
{
$aimDir
=
str_replace
(
‘‘
,
‘/‘
,
$aimDir
);
$aimDir
=
substr
(
$aimDir
,
-
1
)
==
‘/‘
?
$aimDir
:
$aimDir
.
‘/‘
;
$oldDir
=
str_replace
(
‘‘
,
‘/‘
,
$oldDir
);
$oldDir
=
substr
(
$oldDir
,
-
1
)
==
‘/‘
?
$oldDir
:
$oldDir
.
‘/‘
;
if
(!
is_dir
(
$oldDir
))
{
return
false
;
}
if
(!
file_exists
(
$aimDir
))
{
FileUtil
::
createDir
(
$aimDir
);
}
$dirHandle
=
opendir
(
$oldDir
);
while
(
false
!==
(
$file
=
readdir
(
$dirHandle
)))
{
if
(
$file
==
‘.‘
||
$file
==
‘..‘
)
{
continue
;
}
if
(!
is_dir
(
$oldDir
.
$file
))
{
FileUtil
::
copyFile
(
$oldDir
.
$file
,
$aimDir
.
$file
,
$overWrite
);
}
else
{
FileUtil
::
copyDir
(
$oldDir
.
$file
,
$aimDir
.
$file
,
$overWrite
);
}
}
return
closedir
(
$dirHandle
);
}
/**
* 复制文件
*
* @param string $fileUrl
* @param string $aimUrl
* @param boolean $overWrite 该参数控制是否覆盖原文件
* @return boolean
*/
function
copyFile
(
$fileUrl
,
$aimUrl
,
$overWrite
=
false
)
{
if
(!
file_exists
(
$fileUrl
))
{
return
false
;
}
if
(
file_exists
(
$aimUrl
)
&&
$overWrite
==
false
)
{
return
false
;
}
elseif
(
file_exists
(
$aimUrl
)
&&
$overWrite
==
true
)
{
FileUtil
::
unlinkFile
(
$aimUrl
);
}
$aimDir
=
dirname
(
$aimUrl
);
FileUtil
::
createDir
(
$aimDir
);
copy
(
$fileUrl
,
$aimUrl
);
return
true
;
}
}
?>
php简单实用的操作文件工具类(创建、移动、复制、删除)
标签:
原文地址:http://www.cnblogs.com/ZDPPU/p/5823845.html
踩
(
0
)
赞
(
0
)
举报
评论
一句话评论(
0
)
登录后才能评论!
分享档案
更多>
2021年07月29日 (22)
2021年07月28日 (40)
2021年07月27日 (32)
2021年07月26日 (79)
2021年07月23日 (29)
2021年07月22日 (30)
2021年07月21日 (42)
2021年07月20日 (16)
2021年07月19日 (90)
2021年07月16日 (35)
周排行
更多
关闭苹果IOS app自动更新
2021-07-29
开发一个即时通讯App
2021-07-28
iOS 跳转App Store进行评分
2021-07-26
诺基亚短信生成!太好玩了
2021-07-26
【Azure 应用服务】App Service 配置 Application Settings 访问Storage Account得到 could not be resolved: '*.file.core.windows.net'的报错。没有解析成对应中国区 Storage Account地址 *.file.core.chinacloudapi.cn
2021-07-26
Android系统编程入门系列之界面Activity响应丝滑的传统动画
2021-07-26
uniapp h5,app两端复制文本
2021-07-22
uni-app滚动视图容器(scroll-view)之监听上拉事件
2021-07-21
新型横向移动工具原理分析、代码分析、优缺点以及检测方案
2021-07-19
Android系统编程入门系列之界面Activity交互响应
2021-07-19
友情链接
兰亭集智
国之画
百度统计
站长统计
阿里云
chrome插件
新版天听网
关于我们
-
联系我们
-
留言反馈
© 2014
mamicode.com
版权所有 联系我们:gaon5@hotmail.com
迷上了代码!