Php unlink文件在使用情况?

时间:2016-10-04 17:18:40

标签: php unlink

根据我的个人经验,您无法删除正在使用的内容,我认为如果目标文件正在使用,unlink()将无效,您如何处理?

$_SESSION

1 个答案:

答案 0 :(得分:1)

unlink返回一个布尔值,您可以使用它来检测删除是否成功:

<?php

$file = fopen('notes.txt','w');
fwrite($file,'abc123');

$resul = unlink("notes.txt"); // ◄■■■ ATTEMPT TO DELETE OPEN FILE.
if ( $resul )
     echo "File deleted";
else echo "File NOT deleted (file in use or protected)";

fclose($file);

?>    

您可能会在屏幕上看到警告消息,因此请关闭警告并让代码(if($resul))处理问题。

修改:

可以使用函数is_writable检测文件是否正在使用或是否受到保护,下一代码显示如何:

<?php

$file = fopen("notes.txt","w"); // ◄■■■ OPEN FILE.
fwrite($file,"abc123");

$resul = unlink("notes.txt"); // ◄■■■ ATTEMPT TO DELETE FILE.
if ( $resul ) // ◄■■■ IF FILE WAS DELETED...
     echo "File deleted";
elseif ( is_writable( "notes.txt" ) ) // ◄■■■ IF FILE IS WRITABLE...
     echo "File NOT deleted (file in use)";
else echo "File NOT deleted (file protected)";

fclose($file);

?>    

要测试以前的代码,请打开文件的属性并将其设置为只读和隐藏,然后运行代码。