• ベストアンサー

copyをしたときの最終更新時間

WindowsXP+cygwinでPerlを使用して、2つのファイルを同期するソフトを練習の為に作っています。ファイルAとファイルBの最終更新時間をstat関数で調べてFile::Copyモジュールのcopy関数でコピーする方法で作っています。ファイルAの方が古い状態で同期を実行すると、その内容がファイルBに上書きされますが、ファイルBの最終更新時間がファイルAと同じ時間ではなくて、copyを実行した時間になってしまいます。copyをした後で、ファイルBの最終更新時間をファイルAと同じにする方法はあるのでしょうか。ご存じの方、いらっしゃいましたらお教えください。よろしくお願いします。

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

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

ファイルのタイムスタンプを変更します。 Linux なら、touch というコマンドがありますが、 Perl だけでも、utime という関数を使えば可能です。 Windows は確か、アクセス時刻の扱いは微妙だったような気がしますが、 最終変更時刻は問題なく変更できると思います。

参考URL:
http://www.site-cooler.com/cgi-bin/kansuu.cgi?lang=perl&method=utime
kary
質問者

お礼

教えていただきました方法を試してみましたところ、私の行いたいことができました。ありがとうございました。

すると、全ての回答が全文表示されます。

関連するQ&A