【发布时间】:2011-10-29 14:43:08
【问题描述】:
我有某种批处理程序,它应该从目录中提取文件并对其进行处理。
因为这个程序应该:
- 在 JDK 5 上运行,
- 要小(没有外部库)
- 而且速度很快! (一声巨响)
...什么是从目录中只选择一个文件的最佳方法 - 不使用 File.list()(可能是数百个文件)?
【问题讨论】:
-
你想选择一个命名的文件/目录还是任何文件?此外,在处理完该文件后,您是继续处理其他文件还是退出程序?
-
所以要明确一点,是需要从目录中获取文件(任意文件)还是只想知道目录中是否包含文件?
-
只是任何文件,第一个找到的文件 - 程序应该在目录中有文件时执行此操作(文件不断添加);就是不想每次都把文件夹里的所有文件都列出来,好像效率很低……
-
在 Java 1.5 上没有好的解决方案,您可以使用过滤器只获取 1 个文件,但是 java 只会返回一个文件但无论如何都会解析所有文件。
-
文件是什么让它成为“第一”?最早的创作日期?按名称排序的第一名?体积最小?顺便说一句 - 您是否测量过列出 100 个文件所需的时间,您是否只是在进行这种过早的优化?