温馨提示×

readdir如何过滤特定文件类型

小樊
48
2025-08-20 13:16:31
栏目: 编程语言

readdir 是一个用于读取目录内容的函数。要过滤特定文件类型,你可以在遍历目录内容时检查每个文件的扩展名。以下是一个使用 PHP 的示例,展示了如何使用 readdir 过滤特定文件类型(例如,仅显示 .txt 文件):

<?php
$directory = 'path/to/your/directory'; // 替换为你的目录路径
$allowedExtension = '.txt'; // 设置允许的文件扩展名

if (is_dir($directory)) {
    $files = scandir($directory); // 读取目录内容

    foreach ($files as $file) {
        if ($file !== '.' && $file !== '..') { // 排除当前目录和上级目录
            $fileExtension = pathinfo($file, PATHINFO_EXTENSION); // 获取文件扩展名
            if (strtolower($fileExtension) === strtolower($allowedExtension)) { // 检查文件扩展名是否匹配
                echo $file . PHP_EOL; // 输出匹配的文件名
            }
        }
    }
} else {
    echo "The directory does not exist.";
}
?>

请注意,这个示例使用了 scandir 函数,因为它比 readdir 更易于使用。但是,如果你想使用 readdir,可以参考以下示例:

<?php
$directory = 'path/to/your/directory'; // 替换为你的目录路径
$allowedExtension = '.txt'; // 设置允许的文件扩展名

if (is_dir($directory)) {
    $handle = opendir($directory); // 打开目录

    while (($file = readdir($handle)) !== false) {
        if ($file !== '.' && $file !== '..') { // 排除当前目录和上级目录
            $fileExtension = pathinfo($file, PATHINFO_EXTENSION); // 获取文件扩展名
            if (strtolower($fileExtension) === strtolower($allowedExtension)) { // 检查文件扩展名是否匹配
                echo $file . PHP_EOL; // 输出匹配的文件名
            }
        }
    }

    closedir($handle); // 关闭目录句柄
} else {
    echo "The directory does not exist.";
}
?>

这两个示例都会输出指定目录中所有 .txt 文件的文件名。你可以根据需要修改 $allowedExtension 变量来过滤其他文件类型。

0