• ベストアンサー

ファイルの削除

日付をファイル名とし、データ量で「-」と「数字」を付加した 2ページ目以降が作成され、日によって1~10ページ程度の htmlファイルが以下のように出来上がります。 ./hoge/20141106.html ./hoge/20141106-2.html ./hoge/20141106-3.html 以下の処理で「./hoge/20141106.html」は削除できましたが、 「-2」や「-3」以降も削除する記述をご教示お願いします。 unlink("hoge/$temp.html"); どうぞ宜しくお願いします。

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

  • ベストアンサー
  • tatsu99
  • ベストアンサー率52% (391/751)
回答No.3

unlink は ファイル名にワイルドカードや正規表現を含めることはできません。 但し ファイル名の配列を指定することは可能です。 以下のようにしてください。 --------------------------------- @result = glob("./hoge/$temp*.html"); unlink @result; ----------------------------------

mnbvc321
質問者

お礼

お礼が遅くなり申し訳ございません。 先ほど試してみたところ、希望通りに動作してくれました。 これからは古いデータを手動で削除しなくて済むように なったので、手間が省けて助かります! ご親切にご教示頂き有難うございました。

その他の回答 (2)

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.2

おしぃ>#1

参考URL:
http://perldoc.perl.org/functions/unlink.html
回答No.1

ハイフンいかが数字ひと桁だとするなら、まぁ簡単にやるなら unlink("hoge/$temp-[0-9].html"); を足すとか。 もっと大雑把にやるなら unlink("hoge/$temp.*.html"); かな。 消してはいけない類似した名前のファイルがあったら工夫してください。

mnbvc321
質問者

お礼

レスありがとうございます。 unlink("hoge/$temp-[0-9].html"); unlink("hoge/$temp.*.html"); 両方試しましたが削除できませんでした。 >消してはいけない類似した名前のファイルがあったら… ファイル名の$temp部分は50日を経過した日付を指定しているので 消してはいけないファイルは無いので大丈夫です。 以下のように二行で記述しました。 unlink("hoge/$temp.html"); unlink("hoge/$temp-[0-9].html"); ./hoge/20141106.html  ←削除完了 ./hoge/20141106-2.html ←削除不能 ./hoge/20141106-3.html ←削除不能 上記のようになります。 ご助言よろしくお願い致します。