重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

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

お世話になります。
Perl/CGIで悩んでいるところがあり質問させていただきに参りました。

サーバ上の、とあるフォルダに下にある.htmlファイルの一覧を表示・リンクし、またその各ファイルの最終更新日付を表示したいと思っています。
そこで下記の様な、ソースを書きました。


opendir (DIR,$dir) ;
@files = grep { /\.html$/ } readdir DIR;
close DIR;


foreach $filename (@files){

$modtime = (stat($filename))[9] ; #
($sec, $min, $hour, $mday, $mon, $year) = localtime($modtime);
$year = $year + 1900;
$mon= $mon + 1;

print "<a href=html/$filename>$filename</a>[作成日:$year 年$mon月$mday日$hour時$min分$sec秒]<P>\n";
}


これを実行すると、複数ファイルのうち、1つのファイルだけが、なぜか正常に表示され、あとのファイルはすべて
「1970 年1月1日9時0分0秒」となってしまいます。
これはどうしてなんでしょうか??

分かる方がいらっしゃいましたら、ご教授の程、よろしくお願いします。

環境:Windows 2000 Server,IIS,ActivePerl

A 回答 (1件)

カレントディレクトリの下の $filename の情報を取得しようとしているのでは?


正常なファイル名はカレントディレクトリにも存在しているから取得できてるのかも

さて
$modtime = (stat($filename))[9] ;

$modtime = (stat("$dir\\$filename"))[9] ;

ではどうでしょうか
    • good
    • 0
この回答へのお礼

返答ありがとうございます。

まさにそのとおりでした!
ありがとうございました。

お礼日時:2004/10/31 22:24

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