• ベストアンサー

特定のフォルダー内の全てのファイルを削除するには

お世話になります。 Perlで特定のファイルをunlinkで削除することは、したことがあるのですが、特定のフォルダ例えばCGIプログラムのあるフォルダ配下の「./temp」フォルダー内の全てのファイルを削除するプログラムは、どのように記述すればよいのですか?よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

globを使ってファイルの一覧を取得しましょう。 @list = glob('./temp/*'); foreach $file(@list) { unlink($file); } フォルダを消すときは、さらに rmdir('./temp'); 削除はくれぐれも慎重に!

souta_n
質問者

お礼

ばっちりいけました。 ありがとうございます。

その他の回答 (1)

  • kochory
  • ベストアンサー率45% (167/370)
回答No.1

systemでシェルのrmコマンドを呼び出せばすむことでは? ただ注意として、フォルダの指定は絶対パスですること。 相対パスを用いると、スクリプトがどこで実行されるかによって カレントディレクトリが変わってしまうのでパスの展開結果が変わり 重要なファイルを消してしまう恐れが多分にあります。 例えばその"./temp"が"/usr/cgi/temp"だとしたら、 system("rm -f /usr/cgi/temp/*"); とすればいいでしょう。 くれぐれも慎重にどうぞ。

souta_n
質問者

お礼

ありがとうございます。 UNIXのシェルコマンドとかはつかった事が無くて・・・仰っていることが、よくわかりません。

関連するQ&A

専門家に質問してみよう