2016-10-04 6 views
0

私の個人的な経験では、使用中のものを削除することはできません。ターゲットファイルが使用されている場合、unlink()はうまくいかないと思います。使用状況にあるPHPのリンク解除ファイルですか?

<?php unlink ("notes.txt"); // how to handle if file in use? ?> 
+0

コードまたは例を表示できます。フィールドであなたの問題を理解することができますか? –

+0

関連するhttp://superuser.com/questions/251129/moving-a-file-while-its-in-use-how-does-it-work –

+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))が問題を処理します。

編集:オープン、

<?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); 

?>  

は、以前のコードをテストするには:

それはファイルが使用中であるか、それが機能is_writableを使用して保護されているかどうかを検出することが可能ですが、次のコードは、方法を示していますファイルのプロパティを読み取り専用に設定し、コードを実行します。

+0

これには定数エラーはありませんか? ?私はファイルが保護されているか使用中のファイルかを明示的に知りたい。 –

+0

@MikoChu、私はファイルが保護されているか使用中のときに処理を分けるために私の答えを編集しました。 –

+0

答えに感謝します! –

関連する問題