用户
 找回密码
 入住 CI 中国社区
搜索
查看: 4360|回复: 3
收起左侧

关于使用unlink()删除文件的个人见解

[复制链接]
发表于 2012-2-27 17:42:14 | 显示全部楼层 |阅读模式
本帖最后由 ^淡如清风 于 2012-2-27 17:55 编辑

我是PHP新手,使用PHP时间不长,在删除文件的时候有了这样的了解

1. CI的文件操作辅助函数没有删除文件的函数,只有删除目录下文件的函数,以及删除目录的函数
2. 因此删除单个文件时需要使用PHP原生的unlink()函数
3. 删除前最好做如下判断
A. 文件是否存在
B. 文件是否是只读文件(只读文件不能删除)
4. 判断后再删除

PHP复制代码
/**
     * 删除文件操作
     * $path    string  文件路径
     */

    protected function _f_unlink($path)
    {
        if (is_file($path))
        {
            @chmod($path, 0666); //取消只读模式
            return @unlink($path);
        }
        return FALSE;
    }
复制代码


如果有错误欢迎大家指出

chmod() 应该会加大系统的IO开销吧,所以一般情况下上传的文件应该不会是只读文件的,因为会继承文件夹的权限,所以是不是这个chmod()这个函数可以忽略掉呢?
发表于 2012-2-27 18:48:28 | 显示全部楼层
直接用 @unlink() 就行了。。。。
发表于 2015-3-21 20:58:10 | 显示全部楼层
挺赞的!!{:soso_e179:}
发表于 2015-3-30 15:25:54 | 显示全部楼层
删除文件 没用chmod() 。判断文件是否存在后,我直接unlink(),不知有没隐患

本版积分规则