使用 PHP 删除 __MACOSX 文件夹?
-
21-09-2019 - |
题
有没有人有过删除的经验 __MACOSX
PHP 的文件夹?
该文件夹是在我解压存档后生成的,但我似乎无法删除它。
这 is_dir
函数在文件上返回 false,使递归删除脚本失败(因为存档内部是“临时”文件),因此目录不为空。
我在 PHP5 中使用内置的 ZipArchive 类(extractTo 方法)。
我正在使用的 rmdir 脚本是我在 php.net 上找到的:
<?php
// ensure $dir ends with a slash
function delTree($dir) {
$files = glob( $dir . '*', GLOB_MARK );
foreach( $files as $file ){
if( substr( $file, -1 ) == '/' )
delTree( $file );
else
unlink( $file );
}
rmdir( $dir );
}
?>
解决方案
我发现了该功能的改进版本 http://www.php.net/rmdir 这需要 PHP5。
- 该函数使用
DIRECTORY_SEPARATOR
代替/
. 。PHP 定义DIRECTORY_SEPARATOR
作为正在运行的操作系统的正确字符(“/”或“\”)。 - 目录位置不需要以斜杠结尾。
- 该函数返回
true
或者false
在完成的时候。
function deleteDirectory($dir) { if (!file_exists($dir)) return true; if (!is_dir($dir)) return unlink($dir); foreach (scandir($dir) as $item) { if ($item == '.' || $item == '..') continue; if (!deleteDirectory($dir.DIRECTORY_SEPARATOR.$item)) return false; } return rmdir($dir); }
其他提示
哪些操作系统和版本您使用的?
您需要正确的路径的目录和文件。
// ensure $dir ends with a slash
function delTree($dir) {
foreach( $files as $file ){
if( substr( $file, -1 ) == '/' )
delTree( $dir.$file );
else
unlink( $dir.$file );
}
rmdir( $dir );
}
不隶属于 StackOverflow