gpt4 book ai didi

java - 列出 java 中目录中的固定文件数

转载 作者:行者123 更新时间:2023-11-30 04:54:47 26 4
gpt4 key购买 nike

Possible Duplicate:
Is there a workaround for Java's poor performance on walking huge directories?

我创建了一个实用程序,通过使用File.listFiles()函数列出某个目录中的所有文件,但是当我在该目录下复制大量文件(大约100K)时出现问题。

我正在寻找一些解决方案,实际上从该目录中获取一些固定数量的文件(例如 X)并进行处理,然后删除这些文件并获取下一个 X 个文件。任何人都可以建议我任何解决方案吗?

问候

最佳答案

一种解决方案可能是使用FileNameFilter,它在接受一定数量的文件后返回false,或者如果您准备稍微滥用异常,此时抛出异常

class CountedFilter implements FilenameFilter {
int limit = 0;

public CountedFilter ( int limit ) {
this.limit = limit;
}

public boolean accept(File file, String string) {
return limit-- > 0;
}

}

<小时/>还有另一种选择,虽然远不那么简洁,但我相信更有效。它涉及一个 FilenameFilter,它通过 BlockingQueue 将每个文件发送回调用者。 File.list 在单独的线程中调用,因此您不必等待它完成。

此解决方案还有一个额外的好处,即可以在 File.list 运行时处理文件,从而生成更流畅的解决方案,就像迭代器一样。如果受到鼓励,我会将代码作为单独的答案发布。

关于java - 列出 java 中目录中的固定文件数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8877654/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com