アプリ版:「スタンプのみでお礼する」機能のリリースについて

2日徹夜していろいろやってみましたがどうにもなりません。
どなたか助けてください!

ディレクトリAの中にimageという名前のディレクトリがあります。
imageディレクトリには100前後のjpg画像があります。
ディレクトリAにおいてあるreset.phpで、imageディレクトリ内のフォルダを全部削除するにはどうしたらよいでしょうか。
以下、いろいろ試したソースですが、これだとエラーが出てしまいます。

よろしくおねがいします!

$res_dir = opendir( './image' );
while( $file_name = readdir( $res_dir ) ){
unlink($file_name);
}

A 回答 (1件)

readdir()の戻り値 $file_name を全て見てみるとわかると思いますが、カレントディレクトリを表す "." と 親ディレクトリを表す ".."


も返ってきています。unlink() ではディレクトリを削除することはできません。
よって、is_file()関数でファイルかどうか判定して、ファイルならば unlink() すればよいです。

image ディレクトリ内にファイルしか存在しないのであれば、

$path = './image';
$res_dir = opendir( $path );
while( $file_name = readdir( $res_dir ) ){
echo $file_name."\n";
if(is_file($path.'/'.$file_name))
unlink($path.'/'.$file_name);
}

でOKです。

./image ディレクトリ内にさらにサブディレクトリがある場合は、もう少し複雑になります。

以下のサイトに例があります。
http://php.morva.net/manual/ja/function.rmdir.php
    • good
    • 0
この回答へのお礼

ありがとうございました!
./imageにはファイルしか存在しないため、
ご提示いただいたソースを元にして組み込んだところ、成功しました。

やっと寝られます。

お礼日時:2007/01/09 16:50

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!