2

PHP-CLIをWindowsマシンで動作させたので、PHPを使用してスクリプトを作成できました。ただし、X日より古いファイルのFirefoxダウンロードフォルダーをクリーンアップするスクリプトを作成しようとしていますが、filemtime()関数が機能していないようです。

これが私が書いた関数です:

function deleteOldFiles($dir, $days) {
  $mydir = opendir($dir);
  while(($file = readdir($mydir)) !== false) {
    if($file != "." && $file != ".." && (filemtime($dir.$file) <= time() - ($days * 86400))) {
      //unlink($dir.$file) or DIE("Failed to delete $dir$file<br />");
      echo filemtime($dir.$file);
    }
  }
  closedir($mydir);
}

そして、これを実行すると、すべてのファイルに対して次のエラーが発生します。

Warning: filemtime(): stat failed for E:\My Documents\Downloadsphp-5.3.0-nts-Win32-VC9-x86.msi in E:\_scripts\cleanupDownloads\cleanupDownloads.php on line 10

私が行った調査によると、filemtime()はWindowsで機能するはずです。私は何が間違っているのですか?

4

1 に答える 1

3

Warning: filemtime(): stat failed for E:\My Documents\Downloadsphp-5.3.0-nts-Win32-VC9-x86.msi in E:\_scripts\cleanupDownloads\cleanupDownloads.php on line 10

\ディレクトリとファイル名の間に円記号がありません。\\Windows()でエスケープするか、スラッシュ(/)またはPHPのDIRECTORY_SEPARATOR定数を使用することを忘れないでください。

編集

そして、scandir()glob()、またはDirectoryIteratorを見てください。

于 2009-08-16T23:44:24.997 に答える