Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/265.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 列出大目录中的少量文件_Php_Windows - Fatal编程技术网

Php 列出大目录中的少量文件

Php 列出大目录中的少量文件,php,windows,Php,Windows,我有一个包含大约10000个文件的文件夹。大约每0.5-2小时,就会出现一个新文件,这向我表明一个过程已经完成。我想用这个指示器来跟踪每天完成多少个过程,并在电视上显示这个数字,然而我尝试过的每一种方法似乎都非常慢 我尝试了在SO上找到的几种不同的方法(glob、scandir、DirectoryIterator等),但没有一种方法可以快速完成(至少在IMO上是这样)。搜索通常需要30秒和/或超时。如果可能的话,我希望搜索时间不超过5秒,以便每5分钟左右运行一次,并在电视屏幕上半直播 我只需要知

我有一个包含大约10000个文件的文件夹。大约每0.5-2小时,就会出现一个新文件,这向我表明一个过程已经完成。我想用这个指示器来跟踪每天完成多少个过程,并在电视上显示这个数字,然而我尝试过的每一种方法似乎都非常慢

我尝试了在SO上找到的几种不同的方法(glob、scandir、DirectoryIterator等),但没有一种方法可以快速完成(至少在IMO上是这样)。搜索通常需要30秒和/或超时。如果可能的话,我希望搜索时间不超过5秒,以便每5分钟左右运行一次,并在电视屏幕上半直播

我只需要知道当天添加了哪些文件,其他什么都不需要。我甚至可以在getmtime中列出前50个文件,并从中进行解析,但是上面的所有方法都必须循环遍历目录中的每个文件

我的最后一种方法是使用Robotask每天将新文件移动到另一个文件夹(然后在12:00清除),但如果可能的话,我想用PHP完成这一切


有人有什么想法吗?似乎我每次搜索都会使用上述方法得到相同的4-5个SO线程。

将存档移动到新文件夹。当PHP运行时,让它对当前文件夹中的文件进行计数,更新某个位置的文件计数,并将这些“新文件”移动到存档中

这一切都取决于文件存在的原因。。。但这其中的一些味道应该会起作用。 你需要回去看看上周四完成了什么吗


基本问题是收件箱和归档文件混合在一起,归档文件已经变得足够大,单个文件夹的双重用途现在成了一个问题

文件是如何通过一些代码“显示”的?为什么不让代码也通知您的端点呢?读取包含10k文件的目录的内容需要花费时间,对此您无能为力。在PHP中读取目录的不同方法可能不会产生任何显著差异。使用inotify或类似的工具在文件系统/OS级别设置此选项可能是更好的选择。@nerdlyist这些文件是从另一台计算机(数据记录器)保存的。@CBroe这是我的想法,但我希望至少再尝试一个选项。