電子書籍の厳選無料作品が豊富!

日付をファイル名とし、データ量で「-」と「数字」を付加した
2ページ目以降が作成され、日によって1~10ページ程度の
htmlファイルが以下のように出来上がります。

./hoge/20141106.html
./hoge/20141106-2.html
./hoge/20141106-3.html

以下の処理で「./hoge/20141106.html」は削除できましたが、
「-2」や「-3」以降も削除する記述をご教示お願いします。

unlink("hoge/$temp.html");


どうぞ宜しくお願いします。

A 回答 (3件)

unlink は ファイル名にワイルドカードや正規表現を含めることはできません。


但し ファイル名の配列を指定することは可能です。
以下のようにしてください。
---------------------------------
@result = glob("./hoge/$temp*.html");
unlink @result;
----------------------------------
    • good
    • 0
この回答へのお礼

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

お礼日時:2014/11/11 16:10
    • good
    • 0

ハイフンいかが数字ひと桁だとするなら、まぁ簡単にやるなら



unlink("hoge/$temp-[0-9].html");

を足すとか。
もっと大雑把にやるなら

unlink("hoge/$temp.*.html");

かな。

消してはいけない類似した名前のファイルがあったら工夫してください。
    • good
    • 0
この回答へのお礼

レスありがとうございます。

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 ←削除不能

上記のようになります。
ご助言よろしくお願い致します。

お礼日時:2014/11/07 15:08

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