プロが教える店舗&オフィスのセキュリティ対策術

rmdirでフォルダ(フォルダ1)とその中のフォルダ(フォルダ2)を削除したく思っています。
それでまずフォルダ2をrmdirで削除しました。
ここまでは成功するのですが
次にフォルダ1を削除しようとすると
Directory not empty のエラー文が出てしまいます。
確認してみたところフォルダ1の中はフォルダ2がしっかり削除されていて空でした。
何か特別な手続きを踏まないといけないのでしょうか?

php文を載せておきます。
どなたか助けてください。

$o_dir=opendir("./up/".$1."/");
rmdir("./up/".$1."/".$2);
//これは削除できているようです
closedir($o_dir);
$o_dir=opendir("./up/");
rmdir("./up/".$1);
closedir($o_dir);

A 回答 (2件)

こんにちわ。



rmdir は、ディレクトリのなかにファイルが残っていると削除できません。

なので、rmコマンドを使いましょう。
コマンドラインで下記の様に入力して動作を確かめてみてください。

rm -r ディレクトリ名
    • good
    • 1
この回答へのお礼

アドバイスありがとうございました。
ファイルは空でした。
そしてなぜか今回は削除できました。
なにかこっちで間違いがあったようです。
すいませんでした。

お礼日時:2005/12/19 21:14

こんにちわ。


私の説明が良くなかったようなので補足しておきますね。

「Directory not empty のエラー文が出て」・・・
これは、”ディレクトリが空ではない”というエラーで、rmdirコマンドでは空のディレクトリじゃないと削除できないんです。

今回削除できたのは、ディレクトリの中が(なんらかの理由で)空だったためだと思われます。

というわけで、ディレクトリの中が空じゃなくても削除したい場合は、#1のような対応をすると良いですよ。

ではでは。
    • good
    • 0

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