删除文件目录的两种方式
在项目开发的过程中,碰到对文件目录进行操作是常有的事,以下简要分享两种方式删除目录的代码,请往下看!
1、删除目录方式一
该方式也是最常用的方式
/**
* 删除目录下所有文件
* @param $sourceDir
* @return bool
*/
function delDir($sourceDir)
{
if(!is_dir($sourceDir)){
return false;
}
$dir = rtrim($sourceDir, '/').'/';
$op = opendir($dir);
while(($file = readdir($op)) !== false){
if($file == '.' || $file == '..'){
continue;
}
$filePath = $dir.$file;
if(is_dir($filePath)){
delDir($filePath);
}else{
unlink($filePath);
}
}
closedir($op);
//删除当前目录
rmdir($dir);
}
2、删除目录方式二
这种方式更微妙和简要
/**
* 删除目录
* @param $dir 请传入一个真实存在的目录
*/
function removeDir($dir)
{
$dir = rtrim($dir, '/');
foreach (scandir($dir) as $item) {
if ($item == '.' || $item == '..') {
continue;
}
$filePath = join(DIRECTORY_SEPARATOR, array($dir, $item));
if (is_dir($filePath)) {
removeDir($filePath);
} else {
unlink($filePath);
}
}
rmdir($dir);
}