当前位置: 首页 > 面试题库 >

使用Java计算目录中的文件数

甄成弘
2023-03-14
问题内容

如何使用Java计算目录中的文件数?为了简单起见,假设该目录没有任何子目录。

我知道以下的标准方法:

new File(<directory path>).listFiles().length

但这将有效地遍历目录中的所有文件,如果文件数量很大,这可能会花费很长时间。另外,除非目录中的实际文件数大于某个固定的大数字(例如5000),否则我不关心目录中的实际文件。

我正在猜测,但是目录(或者在Unix中,它的i节点)是否不存储其中包含的文件数量?如果我可以直接从文件系统获取该数字,它将更快。在后端开始进行实际处理之前,我需要对Tomcathtml" target="_blank">服务器上的每个HTTP请求进行此检查。因此,速度至关重要。

我可以不时地运行一个守护进程来清除目录。我知道,所以请不要给我那种解决方案。


问题答案:

这可能不适用于您的应用程序,但是您始终可以尝试进行本机调用(使用jni或jna),或者执行特定于平台的命令并读取输出,然后再返回list()。length。在*
nix上,您可以执行ls -1a | wc -l(请注意-第一个命令用破折号-a,第二个命令用破折号-小写字母L)。不确定在Windows上适合什么-
可能只是a,dir然后寻找摘要。

在为此类问题烦恼之前,我强烈建议您创建一个包含大量文件的目录,然后看看list()。length是否确实花了太长时间。正如该博客作者所建议的那样,您可能不希望为此出汗。

我可能会自己接受Varkhan的回答。



 类似资料:
  • 问题内容: 如何在Linux平台上使用C计算目录中的文件数。 问题答案: 无法保证此代码可以编译,并且实际上仅与Linux和BSD兼容:

  • 问题内容: 我需要计算使用Python的目录中的文件数。 我猜最简单的方法是,但这也将目录本身视为文件。 有什么方法可以只计算 目录 中的文件吗? 问题答案: 会比使用效率更高。要测试文件名是否是普通文件(而不是目录或其他实体),请使用:

  • 问题内容: 我可以列出所有目录 我试图使用以下命令列出每个目录的内容并计算每个目录中的文件数 但这是求和的总和 有没有一种方法可以计算每个目录中的文件数? 问题答案: 假设您已找到GNU,请让其查找目录,然后让bash进行其余操作:

  • 本文向大家介绍使用Java计算文本文件中的行数,包括了使用Java计算文本文件中的行数的使用技巧和注意事项,需要的朋友参考一下 我们可以使用Java的BufferedReader类读取文件中的行。请参阅下面的示例- 示例 在类路径中请看以下文本文件。 test.txt 测试器 这将产生以下结果- 输出结果

  • 本文向大家介绍使用Java计算文本文件中的字符数,包括了使用Java计算文本文件中的字符数的使用技巧和注意事项,需要的朋友参考一下 我们可以使用Java的BufferedReader类读取文件中的字符。请参阅下面的示例- 示例 在类路径中请看以下文本文件。 test.txt 测试器 这将产生以下结果- 输出结果

  • 本文向大家介绍使用Java计算文本文件中的段落数,包括了使用Java计算文本文件中的段落数的使用技巧和注意事项,需要的朋友参考一下 我们可以通过读取字符串中的段落来读取文件中的段落,然后根据“ \ r \ n”模式进行分割。请参阅下面的示例- 示例 在类路径中请看以下文本文件。 test.txt 测试器 这将产生以下结果- 输出结果