Heim >php教程 >PHP源码 >PHP文件及文件夹操作之创建、删除、移动、复制_php实例

PHP文件及文件夹操作之创建、删除、移动、复制_php实例

PHP中文网
PHP中文网Original
2016-05-25 17:12:531028Durchsuche

这篇文章主要介绍了PHP文件及文件夹操作之创建、删除、移动、复制的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下

创建FileUtil.php文件,内容及调用方式如下:

<?php
/**
* 操纵文件类
* 
* 例子:
* FileUtil::createDir(&#39;a/1/2/3&#39;); 测试建立文件夹 建一个a/1/2/3文件夹
* FileUtil::createFile(&#39;b/1/2/3&#39;); 测试建立文件 在b/1/2/文件夹下面建一个3文件
* FileUtil::createFile(&#39;b/1/2/3.exe&#39;); 测试建立文件 在b/1/2/文件夹下面建一个3.exe文件
* FileUtil::copyDir(&#39;b&#39;,&#39;d/e&#39;); 测试复制文件夹 建立一个d/e文件夹,把b文件夹下的内容复制进去
* FileUtil::copyFile(&#39;b/1/2/3.exe&#39;,&#39;b/b/3.exe&#39;); 测试复制文件 建立一个b/b文件夹,并把b/1/2文件夹中的3.exe文件复制进去
* FileUtil::moveDir(&#39;a/&#39;,&#39;b/c&#39;); 测试移动文件夹 建立一个b/c文件夹,并把a文件夹下的内容移动进去,并删除a文件夹
* FileUtil::moveFile(&#39;b/1/2/3.exe&#39;,&#39;b/d/3.exe&#39;); 测试移动文件 建立一个b/d文件夹,并把b/1/2中的3.exe移动进去 
* FileUtil::unlinkFile(&#39;b/d/3.exe&#39;); 测试删除文件 删除b/d/3.exe文件
* FileUtil::unlinkDir(&#39;d&#39;); 测试删除文件夹 删除d文件夹
*/
class FileUtil {
/**
* 建立文件夹
*
* @param string $aimUrl
* @return viod
*/
function createDir($aimUrl) {
$aimUrl = str_replace(&#39;&#39;, &#39;/&#39;, $aimUrl);
$aimDir = &#39;&#39;;
$arr = explode(&#39;/&#39;, $aimUrl);
$result = true;
foreach ($arr as $str) {
$aimDir .= $str . &#39;/&#39;;
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(&#39;&#39;, &#39;/&#39;, $aimDir);
$aimDir = substr($aimDir, -1) == &#39;/&#39; ? $aimDir : $aimDir . &#39;/&#39;;
$oldDir = str_replace(&#39;&#39;, &#39;/&#39;, $oldDir);
$oldDir = substr($oldDir, -1) == &#39;/&#39; ? $oldDir : $oldDir . &#39;/&#39;;
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 == &#39;.&#39; || $file == &#39;..&#39;) {
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(&#39;&#39;, &#39;/&#39;, $aimDir);
$aimDir = substr($aimDir, -1) == &#39;/&#39; ? $aimDir : $aimDir . &#39;/&#39;;
if (!is_dir($aimDir)) {
return false;
}
$dirHandle = opendir($aimDir);
while (false !== ($file = readdir($dirHandle))) {
if ($file == &#39;.&#39; || $file == &#39;..&#39;) {
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(&#39;&#39;, &#39;/&#39;, $aimDir);
$aimDir = substr($aimDir, -1) == &#39;/&#39; ? $aimDir : $aimDir . &#39;/&#39;;
$oldDir = str_replace(&#39;&#39;, &#39;/&#39;, $oldDir);
$oldDir = substr($oldDir, -1) == &#39;/&#39; ? $oldDir : $oldDir . &#39;/&#39;;
if (!is_dir($oldDir)) {
return false;
}
if (!file_exists($aimDir)) {
FileUtil :: createDir($aimDir);
}
$dirHandle = opendir($oldDir);
while (false !== ($file = readdir($dirHandle))) {
if ($file == &#39;.&#39; || $file == &#39;..&#39;) {
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;
}
}
?>

另一种调用方式:

$fu = new FileUtil();
$fu->copyFile(&#39;a/1/2/3&#39;, &#39;a/1/2/4&#39;);

以上所述是小编给大家介绍的PHP文件及文件夹操作之创建、删除、移动、复制,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn