Наш учитель задал нам вопрос, чтобы написать рекурсивный метод для отображения структуры каталогов пути.
Он хочет, чтобы вывод выглядел так:
testdir
+--f1
+--d2
+--d22
+f221
+f212
+f211
+--f2
+--d1
+--f12
Я использовал этот метод :
package Task;
import java.io.File;
import java.io.IOException;
public class Recursive {
public static void main(String[] args) {
File currentDirectory = new File(" . "); // current directory
displayDirectoryContents(currentDirectory);
}
public static void displayDirectoryContents(File dirct) {
File[] myfiles = dirct.listFiles();
for (File file : myfiles) {
if (file.isDirectory()) {
//it worked when i used file.getCanonicalPath()); but file.getName()); does not work
System.out.println("directory : " + file.getName());
displayDirectoryContents(file);
}
else {
//it worked when i used file.getCanonicalPath()); but file.getName()); does not work
System.out.println(" files : " + file.getName());
}
}
}
}
getName не работает и выдает мне ошибку (
Исключение в потоке "main" java .lang.NullPointerException в lab16.displayDirectoryContents (lab16. java : 17) в lab16.main (lab16. java: 10))