PHP正确删除文件

时间:2014-11-28 03:20:01

标签: php file delete-file

我看到有关unlink()函数here

的评论

它说: unlink()不是关于删除文件,而是关于删除文件名。该联机帮助页说:“取消链接 - 删除名称,可能还有它所引用的文件。”

我不明白,unlink()会删除文件还是“看不见”,仍会浪费空间和性能????

2 个答案:

答案 0 :(得分:1)

TL / DR

它基本上意味着为该文件保留的空间被释放以供系统使用。删除该文件的所有链接,使计数0。并且0表示没有文件,有效地释放了空间。


unlink()将删除链接(您指定的文件的名称)到相关存储为(并称为)inode的数据。

当数据没有“链接”时,系统会自动释放与该文件相关的空间。引用inode的链接数量将直接跟踪到inode。

通过运行命令ls -l

,您可以查看有多少链接引用文件
drwxr-xr-x    7 user      Administ     4096 Nov 25 07:46 app
drwxr-xr-x    5 user      Administ        0 Nov 24 14:25 inc

其中75是指向该文件的相应链接。现在,当您运行unlink()并从目录中删除记录(使链接计数0)时,系统可以释放相关空间。

你为什么这么问? 当链接为0时,这意味着没有指向所述数据的链接,实际上意味着没有更多的数据链接,因此可以释放它。允许您使用释放的空间。

这正是链接和快照的工作方式。

答案 1 :(得分:0)

请参阅:http://www.w3schools.com/php/func_filesystem_unlink.asp

所有内容均来自该页面。

  

unlink()函数删除文件。

例如

<?php
$file = "test.txt";
if (!unlink($file)) {
    echo ("Error deleting $file");
} else {
    echo ("Deleted $file");
}
?>