取消链接有时会失败 - 需要改进

时间:2011-02-24 22:04:39

标签: php delete-file unlink

我使用这个自定义的简单脚本,不知何故它失败了,但它总是返回true。

此类unlink放置在数组中的文件经过它们然后在已删除的文件成功时递增计数器,这是我的脚本:

<?php

class Delete 
{
    function deleteFiles($array)
    {
        if(is_array($array))
        {
            $filecount = count($array);
            $count = 0;

            foreach($array as $file)
            {
                if(file_exists($file))
                {
                    $remove = unlink($file);

                    if($remove)
                    {
                        $count++;   
                    }
                }
                else
                {
                    return false;
                }
            }

            if($count == $filecount)
            {
                return true;    
            }
            else
            {
                return false;   
            }
        }
        else
        {
            return false;   
        }
    }
}

?>

基本上我需要改进如何让它变得万无一失,以便数组中的图像被完全删除,一旦unlink删除了文件就没有返回true,所以我没有想法为什么它实际上没有正确删除文件。

有时它完美无缺。

2 个答案:

答案 0 :(得分:1)

if($remove)更改为if($remove && !file_exists($file))

另外,请注意,有时在Windows上取消链接会失败:http://ie.php.net/manual/en/function.unlink.php#100580

答案 1 :(得分:0)

您可以在is_file()之后添加对unlink的来电,以检查该文件是否仍然存在