プロが教えるわが家の防犯対策術!

ディレクトリ上にあるファイルの情報を取得し表示しようとするのですが、以下のようなエラーメッセージが出てfilesize()やfilemtime()が上手く動きません。

Warning: filesize() [function.filesize]: stat failed for 1_1-2.c in C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\uploaded.php on line 14
Warning: fileatime() [function.fileatime]: stat failed for 1_1-2.c in C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\uploaded.php on line 15
Warning: filemtime() [function.filemtime]: stat failed for 1_1-2.c in C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\uploaded.php on line 16

ファイルがphpファイルの時は何故かエラーメッセージは出ず、ちゃんと動いているようです。
調べてみたら容量2GB以上のファイルの情報を取得しようとするとこうなる場合があるとのことですが、どのファイルも100バイト程度のものです。
以下コードです。

<table border = "1">
<tr>
<th>ファイル名</th><th>サイズ</th><th>最終アクセス日</th><th>最終更新日</th>
</tr>
<?php
clearstatcache();
$dir = opendir('./files');
while($file = readdir($dir))
{
if($file != '..' && $file != '.')
{
print('<tr>');
print('<td><a href = "files/'.$file.'">'.$file.'</a></td>');
print('<td>'.filesize($file).'バイト</td>');
print('<td>'.date('Y/m/d H:i:s', fileatime($file)).'</td>');
print('<td>'.date('Y/m/d H:i:s', filemtime($file)).'</td>');
print('</tr>');
}
}
closedir($dir);
?>
</table>

環境はPHP5.3.2, Apache2.2です。ご教授お願いします。m(__)m

A 回答 (1件)

対象がシンボリックファイルでリンク先も存在しないと起こるようですが、


windowsなのでショートカットであるとか?ですかね。
環境が無いので試せていませんが、実ファイルでない場合にもファイル情報を取得できずにwarningを起すのではないでしょうか。

この回答への補足

対象は普通の実ファイルで、シンボリックファイルではないです。

補足日時:2010/03/17 13:00
    • good
    • 0

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