ファイルの作成日時と削除プログラムについて

このQ&Aのポイント
  • ファイルの作成日時に基づいて一定時間で削除するプログラムを作成中です。
  • filemtime関数はファイルの更新日時を取得するため、作成日時を取得することはできません。
  • ファイルを作成したタイミングで更新日時を指定する方法も試しましたがうまくいきませんでした。
回答を見る
  • ベストアンサー

ファイルが作成された日時

ファイルが作成されてからある一定時間で削除するプログラムを作っています。あまり厳密なものではなく、あるページにアクセスがあったタイミングで所定の時間を超えているファイルは削除するような仕組みです。 そんな関数あるのかと思って調べてみましたが、見つけられず代わりにfilemtime関数を見つけました。 ただ、filemtime関数は更新された日時みたいで、それぞれのファイルを見てみると Warning: filemtime() : stat failed for ファイル名 というエラーが出てしまいます。 ファイルを作成したタイミングでその時間に更新してやればよいかと思い、 touch($filename, date("U")); としてみましたが、同様でした。 ちなみにファイルの作成は、ブラウザでファイルアップロードして作成します。 よい解決方法がありましたらご教授ください。 よろしくお願いいたします。

  • umioyo
  • お礼率78% (172/220)
  • PHP
  • 回答数1
  • ありがとう数1

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

  • ベストアンサー
  • koke29
  • ベストアンサー率58% (114/196)
回答No.1

ファイルの作成日時を取得する関数がありましたよー 参考URLを見てみて下さいね 私もいつか使いそうな気がするので umioyoさんの質問で調べる機会が出来てよかったです うまくいくといいですねー

参考URL:
http://webs.xrex.net/k-shop/script/phppage02.php
umioyo
質問者

お礼

ありがとうございます! まさにfilectimeが欲しかった!・・・んですが、やはり同様のエラーが。。。 これはプログラムじゃなく別な問題かもしれないですねー

umioyo
質問者

補足

できました! ふと思いついて、 画像へのパスを変えたらできました。 if ($handle = opendir('./temp/')) { while (false !== ($filename = readdir($handle))) { if ($filename != "." && $filename != "..") { echo $filename." "; echo filectime("temp/".$filename)."<br />\n"; } } closedir($handle); } 読み込むファイルはtempディレクトリ以下だったのですが、 echo $filename で正常にファイル名がとれていたので echo filectime($filename); でもいけるんじゃないかと誤解していました。 本当に助かりました!ありがとうございました。

関連するQ&A

  • ファイルの「更新日時」と「作成日時」

    Windows 7を使っています. ファイルの「作成日時」と「更新日時」とについて,奇異に感じることがあります. 全てのファイルがそうだとは言いませんが,少なからぬファイルについて,「作成日時」の方が「更新日時」よりも後日,後刻のことがあるのです.つまり, 「作成する前に更新していた」 という不思議な状況に思われるのです. どういうことなのでしょうか?

  • ファイルの作成日時

    こんにちは。ファイルの作成日時と更新日時を取得したいのですが、更新日時の取得方法は分かりましたが作成日時の取得方法が分かりません。 よろしくお願いします。 <環境> Windows Server 2003 JDK5.0

    • ベストアンサー
    • Java
  • ファイルの作成日時を取得するにはどうすれば?

    エクセル2003です。 ファイルの作成日時を取得するにはどうすればいいですか? MsgBox FileDateTime(ActiveWorkbook.FullName) を実行すると、更新日時が取得されてしまいます。 FileDateTime 関数のヘルプを見ると、 ----------------------------------- 指定したファイルの作成日時または 最後に修正した日時を示すバリアント型 (内部処理形式 Date の Variant) の値を返します。 ----------------------------------- と書かれていますが、 どうすれば作成日時を取得できるのでしょうか?

  • http://から始まるファイルの更新日時を取得するには

    自分のサーバー内にあるファイルの最終更新日時は statを使って取得できるようですが、 http://から始まるほかのサーバーにあるファイルの 更新日時を取得するにはどうすればいいのでしょうか? よろしくお願いします。

    • ベストアンサー
    • Perl
  • バッチ等で、ファイルの作成日時を変えたいです

    初めての質問です。よろしくお願いします。 バッチファイルなどを使って、フォルダの中にある全部のファイルの 作成日時を、そのファイルの更新日におき変えたいと思っています。 (エクスプローラーのタブで確認できる"作成日時"の事です) 今ファイルの作成日時が、ファイルのコピーによって更新日時より 新しくなってしまいました。検索するソフトが作成日を参照するため どうしても不具合がでてしまいます。 せめて作成日を、同じファイルの更新日と同じものにすれば、 作成日時に近いため何とか運用できるかもしれません。 エクセルはもっていますので、VBAなどでも、もし わかればおねがいします。m(_ _)m

  • 作成日時と更新日時

    作成日時と更新日時  Windows XP Professional(Service Pack 3)のExplorerでファイルのプロパティを見ると、「作成日時」「更新日時」が表示されます。文字通りなら、「新規作成した時に両方が同時刻に設定され、上書きすると更新日時が新しくなる」と思うのですが、更新日時の方が作成日時より半年以上古いファイルがありました。  これはどういうことなのでしょうか?  なお、そのファイルは2007年頃に作成したもので、Windows XP Professional(その頃はSP2)上でPaintshop6を使って作成した画像ファイルです。

  • ファイルの作成日時を修正したい

    ICレコーダーの電池交換をしてから、うっかりしてICレコーダーの時計をセットしないままで録音してしまい、データファイルをパソコンに取り込んだところ、作成、更新日時がパソコンに取り込んだ日時になってしまいました。 ファイルの整理をタイムスタンプされた作成日時を使用しているため、とても不便な思いをしています。 ファイルの作成、更新日時を修正する方法はありませんか?

  • ファイル作成日時を変更しないようにするには?

     いまホームページを作っている最中なのですが、 その中に『ファイル作成日時』と『最終ファイル更新日時』 を表示するようにしています。  ファイルが紛失したりしてはいけないと バックアップを小まめに取るようになったのですが、 いざCDやDVDに焼いたプロパティを見ると、すべて 『ファイル作成日時』=『最終ファイル更新日時』 と同じになっているではありませんか。  それでは、ファイルが本当に紛失してしまった場合、 ホームページに元のような表示をさせる ことができなくなってしまいます。  このサイト内で調べたところ、 圧縮して保存すると解凍した時も全く同じになる ようなことを見かけたのですが、実際やってみるとやはり 『ファイル作成日時』=『解凍を実行した日時』 になってしまいます。  フォルダやファイルをコピーして、さらに、 それをハードディスクに戻しても、全く同じものを作る手段を ご存知の方はおられないでしょうか? よろしくお願い致します。

  • ファイル作成日時と更新日時を一括で前回保存日時に!

    ファイルの作成日時と更新日時を一括で前回保存日時に変更したいです。 MSオフィスのファイルを入れたHDDが壊れ、ある程度はファイル復旧できたのですが、ファイル名が壊れて数字の羅列になってしまいました。また、作成日時と更新日時が復旧した日時になってしまったので、一つひとつ開かないと、いつのファイルかもわからない情況で困っています。 せめて、ファイル作成日と更新日がプロパティ内の前回保存日時にならないかと考えています。 (約3割程度が前回保存日時がのこっていました) 一括変換するための良いツールなどありましたら、無料・有料といませんので教えていただけませんでしょうか。 よろしくお願いいたします。

  • ファイルの作成日時の変更

    ワードファイルpdfファイルの更新日時を変更することはできますが、 作成日時の変更をするにはどうするのですか windows xp office 2000

専門家に質問してみよう