2017-12-09 5 views
0

Ich versuche, einen Ordner in meinem Androiden Documents-Ordner einer Datei rootDir zuzuweisen, deren Dateien in einem Array gespeichert werden.Ordner, der null zurückgibt

String path = Environment.DIRECTORY_DOCUMENTS.toString()+"/Route Tracker"; 
    File rootDir = new File(path); 
    File fileList[] = rootDir.listFiles(); 
    String theNamesOfFiles[] = new String[fileList.length]; 

Der Fehler der Array theNamesOfFiles wird []

gezeigt Aber ich erhalte eine Fehlermeldung - java.lang.NullPointerException: Versuch Länge von null Array

Versuch zu bekommen bekomme die Länge von null-Array sagt, dass meine Dateiliste Array leer ist, aber ich verstehe nicht, wie. Ich habe alle erforderlichen Berechtigungen in der Manifestdatei, und der Route Tracker-Ordner, den ich anrufe, enthält auch 2 CSV-Dateien.

+0

das Array ist leer – Vedant

+0

Was meinst du? Und ich habe den Beitrag aktualisiert, bitte überprüfe noch einmal und löse mein Problem. –

+0

Die Dateiliste ist leer. daher ist das Array derNamesOfFiles leer – Vedant

Antwort

0

gibt es nicht viel zu tun, wenn Sie gegen null überprüfen

File[] files = rootDir.listFiles(); 
if (files == null) { 
    return inFiles; 
} 

siehe meinen Code

public static List<File> getListFiles(File parentDir) { 
    ArrayList<File> inFiles = new ArrayList<File>(); 

    File[] files = rootDir.listFiles(); 
    if (files == null) { 
     return inFiles; 
    } 

    for (File file : files) { 
     if (file.isDirectory()) { 
      inFiles.addAll(getListFiles(file)); 
     } else { 
      if(file.getName().endsWith(".mp3")){ 
       inFiles.add(file); 
      } 
     } 
    } 

    return inFiles; 
} 

in Ihrem Fall inFiles ist eine leere Auflistung, versuchen Sie auf einen leeren iterieren Sammlung wird keinen Fall und überprüfen Sie eine "Null" Zustand Ihrer Arraylist, wenn es null ist, dann erhalten Sie einen Fehler

Android erfordert auch eine Erlaubnis, bestimmte Dateien zu lesen. Vielleicht müssen Sie dies zu Ihrem Manifest hinzufügen:

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> 
Verwandte Themen