有没有人有过删除的经验 __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 );
}
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top