Привет, у меня есть небольшая программа, которая получает каталог из командной строки и добавляет все файлы в этом каталоге и его подпапках ... так вот код:
package oop.ex1.filescript;
import java.io.*;
import java.util.ArrayList;
public class MyFileScript {
public static void main(String[] args) {
File dir = new File(args[0]);
//LINE 13
ArrayList<File> files = readAllFiles(dir.listFiles());
}
private static ArrayList<File> readAllFiles(File[] dir){
ArrayList<File> result = new ArrayList<File>();
//LINE 28
for(File itr : dir) {
result.add(itr);
if (!itr.isFile()) {
File[] temp = itr.listFiles();
//LINE 32
ArrayList<File> deeperList = readAllFiles(temp);
result.addAll(deeperList);
}
}
return result;
}
}
теперь, когда я запускаю его на определенных папках, в которых не так много файлов, все в порядке, но когда я кормлю его папками с большим количеством файлов, я получаю:
Exception in thread "main" java.lang.NullPointerException
at oop.ex1.filescript.MyFileScript.readAllFiles(MyFileScript.java:28)
at oop.ex1.filescript.MyFileScript.readAllFiles(MyFileScript.java:32)
at oop.ex1.filescript.MyFileScript.readAllFiles(MyFileScript.java:32)
at oop.ex1.filescript.MyFileScript.main(MyFileScript.java:13)
любая идея о том, почемутакое случается?Спасибо!ps я пометил номера строк!