在 PHP 中,使用 readdir()
函数读取目录句柄中的条目时,可能会遇到文件系统错误
<?php
$directory = 'path/to/your/directory';
// 打开目录
$dir = opendir($directory);
if (!$dir) {
// 处理打开目录失败的情况
echo "Error: Unable to open directory '$directory'";
exit;
}
while (($entry = readdir($dir)) !== false) {
// 检查是否有读取错误
if ($entry === '.' || $entry === '..') {
continue; // 跳过 "." 和 ".." 目录项
}
// 尝试读取文件信息
$fileInfo = stat($directory . '/' . $entry);
if ($fileInfo === false) {
// 处理读取文件信息失败的情况
echo "Error: Unable to read file info for '$entry'";
continue;
}
// 处理文件信息
echo "Filename: $entry\n";
echo "Size: " . $fileInfo['size'] . " bytes\n";
echo "Last modified: " . date('Y-m-d H:i:s', $fileInfo['mtime']) . "\n";
}
// 关闭目录
closedir($dir);
?>
在这个示例中,我们首先使用 opendir()
函数打开目录。如果打开失败,我们输出错误信息并退出。然后,我们使用 readdir()
函数读取目录中的每个条目。对于每个条目,我们使用 stat()
函数尝试获取文件信息。如果获取文件信息失败,我们输出错误信息并跳过该条目。否则,我们可以处理文件信息。最后,我们使用 closedir()
函数关闭目录。