PHP:ディレクトリを簡単に削除する方法

PHPでフォルダごとガサっと消したい時があると思います。
でもこれが意外に面倒なのです。。。

UNIXのコマンドを使った方が断然楽です。
hogeの中にあるdirというディレクトリを消したい場合、

<?php
$dir='hoge/dir';
system("rm -rf {$dir}");
?>

これでdirの中に何があろうが一気に削除します。

まともにPHPだけでやろうとするなら、

opendir()してディレクトリを開ける。
readdir()でディレクトリ内を読み込む。
unlink()でファイルを一つずつ削除する。

中にディレクトリがあれば同じように開けて、ファイルを一つずつ消す。

rmdir()でディレクトリを削除する。
closedir()でディレクトリを閉じる。

ファイルを消す時「.」とか「..」とか「.DS_Store」とか、見えないファイルも忘れないように削除します。
それらを消しておかないとエラーを起こしてディレクトリを削除できません。

面倒なので自分は挫折・・・w

rmとはたしかremoveのことです。
rmだけしか書かないと、その中にファイルが入っていたら削除されません。

-rは中にファイルやディレクトリがあっても強制的に削除。
-fは、指定したディレクトリが存在しないとエラーを起こすのですが、これを入れておくとエラーを起こしません。

ちょっと危険なので推奨されていないやり方ですが、rm -rfが簡単です。
「PHPのほうが早く対応してくれ」と思いますね〜。

「PHP:ディレクトリを簡単に削除する方法」への2件のフィードバック

  1. たしかに、PHPでこれらの作業をこなすのは大変だと思います。削除の仕組みが違うのか、PHPで消すよりもコマンドで消したほうがレスポンスが早いと思いました。

コメントを残す

メールアドレスが公開されることはありません。

*