Durch Dateisystem rekursiv iterieren
-
Hallo,
ich versuche durchs Dateisystem zu iterieren, aber irgendwie bekomme ich immer eine NullPointerException und weiß nicht warum?
import java.io.File; public class javaProject{ public static boolean is_symlink(File f) throws Exception{ return !f.getAbsolutePath().equals(f.getCanonicalPath()); } public static void through_fs(File root) throws Exception{ for(File file : root.listFiles()){ System.out.println(file.getAbsolutePath()); if(file.isDirectory() && !is_symlink(file)) through_fs(file); } } public static void main(String[] arguments) throws Exception{ through_fs(new File("/")); } }
-
Na dann schau Dir doch mal den Stacktrace genau an - da sind Zeilennummern drin! Und dann schau Dir die Zeile mal genau an, da ist ja nur ein Funktionsaufruf drin. Und dann gib Dir die Variable, die da nullpointert mal aus - dann sollte Dir ein Licht aufgehen.
-
PS: Es gibt FileVisitor im JDK - damit brauchst Du das rekursiv iterieren nicht selber implementieren!
-
Stimmt, ich hab File.canRead() vergessen, da es da einen Ordner gab, der keine read-Permissions hatte.
-
SG1 schrieb:
PS: Es gibt FileVisitor im JDK - damit brauchst Du das rekursiv iterieren nicht selber implementieren!
Ah, kk, danke für die Info.