【问题标题】:LimitIterator and DirectoryIterator way of workingLimitIterator 和 DirectoryIterator 的工作方式
【发布时间】:2014-08-31 14:16:38
【问题描述】:

如果我有一个包含 600 个文件的目录。
现在我尝试获取 300 到 350 个文件。
我将使用带目录迭代器的限制迭代器。
它在后端是如何工作的,它是否进行完整的目录扫描,或者它是否知道直接跳转到目录中的文件 300?

DirectoryIterator
LimitIterator

【问题讨论】:

    标签: php file iterator directory


    【解决方案1】:

    试一试……

    $dir = new DirectoryIterator('your/path/here/');
    $iterator = new LimitIterator($dir, 300, 50);
    
    foreach ($iterator as $file) {
        // do stuff here
    }
    

    此代码未经测试。 foreach 循环就像使用 DirectoryIterator 本身进行迭代一样工作。

    【讨论】:

    • 这将“授予”我对目录中 300 到 350 个文件的访问权限,已授予。但是,我的问题是,在此之前它是否遍历了所有其他文件。
    • 没有。这是 SPL 的 Iterator 对象的优点之一。它只是将真正需要的项目保存在内存中。
    猜你喜欢
    • 2020-02-17
    • 1970-01-01
    • 2012-09-13
    • 2011-10-01
    • 2015-09-05
    • 2018-12-06
    • 2021-02-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多