这是我的代码,用于计算我comp中的所有文件,代码没有停止运行,并且有超过2000000个文件,这是正常的,还是代码处于无限循环。感谢所有帮助:)在我的计算机上使用JAVA查找所有文件
import java.io.*;
import java.util.*;
//got the framework from this link: stackoverflow.com/questions/3154488
public class RFF {
public static void main(String [] args) {
File[] files = new File("/Users").listFiles();
showFiles(files);
System.out.println(size);
}
static File file1 = new File ("/Users/varun/Desktop/a.pdf");
static double size = file1.length();
static int i = 0;
public static void showFiles(File[] files) {
try {
for (File file: files) {
if (file.isDirectory()) {
if (file.isFile() == true)
i++;
else
i = i;
if (file.length() > size)
size = file.length();
System.out.println("FileCount: " + i + ">>> FileSize: " +file.length() + " >>> FileName: " + file.getName());
showFiles(file.listFiles()); // Calls same method again.
} else {
i++;
if (file.length() > size)
size = file.length();
System.out.println("FileCount: " + i + ">>> FileSize: " + file.length() + " >>> FileName: " + file.getName());
}
}
} catch (NullPointerException e) {
System.out.println ("Exception thrown :" + e);
}
}
}
如果您有一个支持100 IOPS的旋转磁盘,则根据您的文件系统,200万个文件需要大约6个小时,可能是两倍。 –
你的文件系统上是否有一半文件?如果没有,为什么你使用一个双倍的大小? '我=我'应该做什么?请尝试清理您的代码,不要在不需要时使用静态变量,正确缩进代码,并且系统地使用花括号代替代码块,即使块只有一条指令。并且不要捕获NullPointerException。 –
你的代码可能是下面的快捷方式,以获得“回到自身之上”,它可能永远不会停止 –