PHP 删除指定目录下面的小于300KB的指定后缀文件,以及空文件

大小可以自己改,文件路径也可以指定。

<?php
$directory = "./Music score/up"; // 替换为你想要操作的目录路径
// 递归删除文件和目录
function deleteFiles($path) {
    if (is_dir($path)) {
        $files = glob(rtrim($path, '/') . '/*');
        if (count($files) === 0) {
            rmdir($path);
            echo "已删除目录:" . $path . "<br>";
        } else {
            foreach ($files as $file) {
                deleteFiles($file);
            }
            // 检查目录是否为空
            $files = glob(rtrim($path, '/') . '/*');
            if (count($files) === 0) {
                rmdir($path);
                echo "已删除目录:" . $path . "<br>";
            }
        }
    } elseif (is_file($path) && filesize($path) < 100 * 1024) {
        unlink($path);
        echo "已删除文件:" . $path . "<br>";
    }
}

// 调用删除函数
deleteFiles($directory);

第二个版本

<?php
function deleteFiles($dir, $extensions, $maxSize) {
    if (!is_dir($dir)) {
        return;
    }

    $files = scandir($dir);

    foreach ($files as $file) {
        if ($file == '.' || $file == '..') {
            continue;
        }

        $path = $dir . '/' . $file;

        if (is_dir($path)) {
            deleteFiles($path, $extensions, $maxSize);
        } else {
            $extension = pathinfo($path, PATHINFO_EXTENSION);

            if (in_array($extension, $extensions) && filesize($path) < $maxSize) {
                unlink($path);
                echo "已删除文件:".$path."<br>";
            } elseif (filesize($path) == 0) {
                unlink($path);
                echo "已删除文件:".$path."<br>";
            }
        }
    }
}

$directory = '/path/to/directory'; // 替换为目标目录的路径
$allowedExtensions = ['txt', 'jpg', 'png']; // 替换为要删除的文件后缀列表
$maxFileSize = 300 * 1024; // 300KB,单位为字节

deleteFiles($directory, $allowedExtensions, $maxFileSize);
?>

 

© 版权声明
THE END
喜欢就支持一下吧
点赞7
评论 抢沙发

请登录后发表评论

    暂无评论内容