使用JAVA查找计算机中的所有文件

使用JAVA查找计算机中的所有文件,java,recursion,Java,Recursion,这是我计算公司所有文件的代码,代码没有停止运行,有超过2000000个文件,这是正常的,还是无限循环中的代码。谢谢你的帮助:) 您的用户目录很可能包含指向路径中较高文件夹的快捷方式(也称为符号链接),您的代码将按照这些快捷方式访问已计数的文件。这将导致无限链接 例如 有关确定符号链接的更多详细信息,请参阅此问题: 如果您使用的是java 7+,则可以按如下方式确定符号链接: Files.isSymbolicLink(path) 如果您有一个支持100 IOPS的旋转磁盘,200万个文件将需要

这是我计算公司所有文件的代码,代码没有停止运行,有超过2000000个文件,这是正常的,还是无限循环中的代码。谢谢你的帮助:)


您的用户目录很可能包含指向路径中较高文件夹的快捷方式(也称为符号链接),您的代码将按照这些快捷方式访问已计数的文件。这将导致无限链接

例如

有关确定符号链接的更多详细信息,请参阅此问题:

如果您使用的是java 7+,则可以按如下方式确定符号链接:

Files.isSymbolicLink(path)

如果您有一个支持100 IOPS的旋转磁盘,200万个文件将需要大约6小时,可能需要两倍的时间,具体取决于您的文件系统。您的文件系统中有一半的文件吗?如果不是,为什么要用双人的尺码?
i=i
应该做什么?请尝试清理您的代码,不需要时不要使用静态变量,正确缩进代码,并系统地使用大括号重新标记代码块,即使该块只有一条指令。不要捕捉NullPointerException。你的代码可能会通过快捷方式“回到自身之上”,在这一点上,它可能永远不会在你的计算机中停止,查看文件夹“users”的属性,它会告诉你有多少文件进入(我使用的计算机只有2个月)属性中有74360个文件,而你的代码中有78000个文件,因此,它似乎工作得很快,因为NullPointerException表示代码中存在错误。您应该理解抛出异常的原因,并修复错误,而不是捕获并忽略异常。亲爱的先生,我如何确保使用快捷方式返回顶部的情况不会发生?某种类型的if块?@Varun确实,使用
Files.isSymbolicLink(path)
-Users 
  - Test
     -ShortCutToUsers
Files.isSymbolicLink(path)