Variablen NullPointerException bei Dateigröße (Nr.1)

Lucaaa

Bekanntes Mitglied
Hallo!
Mein Mittteilungsbedürfnis war mal wieder übermächtig, und so konnte ich nicht anders, als einfach solange etwas in Java zu schreiben, bis ich eine Fehlermeldung kriege um hier allen auf den Sack zu gehen!

So: Folgendes:
Ich möchte die Größe von Ordnern ermitteln:
Java:
 public long getFileSize(File f) {
   if(f.isFile() && f.exists() && f.canRead()) {
    return f.length();  // return file size
   } else if(f.isDirectory()) { // if file is directory
    long size = 0;
    File[] files = f.listFiles();  // get files in directory
    for(int i=0; i<files.length; i++){
     if(files[i].isDirectory() && f.exists() && f.canRead()) {
      size += getFileSize(files[i]);   // repeat process for file
     } else {
      size += files[i].length();  // add length su sum
     }
    }
    return size;  // return file size
   }
   return 0;
  }

Klappt soweit.
Problem: Wenn ich z.B. den Windows Ordner da rein gebe, gibt es eine NullPointerException. Warum?
 
Das könnte vielleicht was mit den Permissions zu tun haben. Im Windows-Ordner gibt es Unterordner die du nur öffnen kannst wenn du diesen Permissions-Dialog akzeptierst (weiß grad nicht wie der heißt).
 
Die Rückgabe von listFiles am besten immer auf null überprüfen 😉


if(f.isDirectory()) { // if file is directory

Danke für diesen Kommentar, hätte fast nicht verstanden, was das für eine komische Bedingung sein soll 😛
 

Neue Themen


Zurück
Oben