- ベストアンサー
特定のフォルダー内の全てのファイルを削除するには
お世話になります。 Perlで特定のファイルをunlinkで削除することは、したことがあるのですが、特定のフォルダ例えばCGIプログラムのあるフォルダ配下の「./temp」フォルダー内の全てのファイルを削除するプログラムは、どのように記述すればよいのですか?よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
globを使ってファイルの一覧を取得しましょう。 @list = glob('./temp/*'); foreach $file(@list) { unlink($file); } フォルダを消すときは、さらに rmdir('./temp'); 削除はくれぐれも慎重に!
その他の回答 (1)
- kochory
- ベストアンサー率45% (167/370)
回答No.1
systemでシェルのrmコマンドを呼び出せばすむことでは? ただ注意として、フォルダの指定は絶対パスですること。 相対パスを用いると、スクリプトがどこで実行されるかによって カレントディレクトリが変わってしまうのでパスの展開結果が変わり 重要なファイルを消してしまう恐れが多分にあります。 例えばその"./temp"が"/usr/cgi/temp"だとしたら、 system("rm -f /usr/cgi/temp/*"); とすればいいでしょう。 くれぐれも慎重にどうぞ。
質問者
お礼
ありがとうございます。 UNIXのシェルコマンドとかはつかった事が無くて・・・仰っていることが、よくわかりません。
お礼
ばっちりいけました。 ありがとうございます。