有没有人有使用PHP删除__MACOSX
文件夹的经验?
我解压缩档案后生成了该文件夹,但我似乎无法将其删除。
is_dir
函数在文件上返回false,导致递归删除脚本失败(因为归档内部是'temp'文件),因此目录不为空。
我在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 );
}
?>
答案 0 :(得分:5)
我从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); }
答案 1 :(得分:0)
您使用的是哪个操作系统和版本?
您需要更正目录和文件的路径。
// 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 );
}