如何使用Java计算目录中的文件数?为了简单起见,我们假设该目录没有任何子目录。
我知道标准方法是:
new File(<directory path>).listFiles().length
但是这样做实际上会遍历目录中的所有文件,如果文件数量很大可能会花费很长时间。此外,除非文件数量超过某个固定的大数字(比如5000),否则我并不关心目录中的实际文件。
我猜测,目录(或Unix系统中的i-node)是否存储其中包含的文件数?如果我可以直接从文件系统获取该数字,那么效率将会更高。在Tomcat服务器的每个HTTP请求开始进行后端真正处理之前,都需要进行此检查。因此,速度至关重要。
我可以定期运行守护进程清除目录。我知道这一点,请不要给我这个解决方案。