删除文件时,为什么文件传输失败?

时间:2012-10-27 02:50:12

标签: macos cocoa file-upload filesystems

我需要将文件上传到我的服务器。我使用ASIHTTPRequest来完成这项工作。但是,如果我只是将上传作业添加到ASINetworkQueue并立即删除源文件,则上传作业仍然可以成功完成。

我认为这项工作会失败,因为我删除了该文件。有人可以解释它仍然成功的原因,即使该文件被删除了吗?

1 个答案:

答案 0 :(得分:0)

当您在进程仍在写入时删除大型日志文件时,您会发现这个问题,期望恢复一些磁盘空间。

UNIX系统倾向于将文件的目录条目与文件的实际数据分开。

数据消耗空间,这就是为什么你可以在UNIX中拥有硬链接的原因,许多目录条目指向相同的文件内容。

在最后一个进程关闭文件之前,不会删除文件的实际数据,这几乎可以肯定是导致文件传输继续的原因。

删除文件只会删除目录条目。数据仍然是因为文件传输程序打开了它。

一旦关闭,数据也将被删除。