2016-10-17 2 views
0

Ich versuche, alle Dateinamen mit Erweiterung von externen Speicher auf meine App abzurufen. Schon habe ich versucht, aber es zeigt Dateigröße = 0" , während ich Debuggen bin, aber zugleich ist es Dateinamen zeigt auch. Bitte versuchen Sie es mir vor.Abrufen einer Liste von Dateien in einem Verzeichnis mit Erweiterungen

private File root; 
private ArrayList<File> fileList = new ArrayList<File>(); 
private LinearLayout view; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    view = (LinearLayout) findViewById(R.id.view); 

    //getting SDcard root path 
    root = new File(Environment.getExternalStorageDirectory() 
      .getAbsolutePath()); 
    getfile(root); 

    for (int i = 0; i < fileList.size(); i++) { 
     TextView textView = new TextView(this); 
     textView.setText(fileList.get(i).getName()); 
     textView.setPadding(5, 5, 5, 5); 

     System.out.println(fileList.get(i).getName()); 

     if (fileList.get(i).isDirectory()) { 
      textView.setTextColor(Color.parseColor("#FF0000")); 
     } 
     view.addView(textView); 
    } 

} 

public ArrayList<File> getfile(File dir) { 
    File listFile[] = dir.listFiles(); 
    if (listFile != null && listFile.length > 0) { 
     for (int i = 0; i < listFile.length; i++) { 

      if (listFile[i].isDirectory()) { 
       fileList.add(listFile[i]); 
       getfile(listFile[i]); 

      } else { 
       if (listFile[i].getName().endsWith(".png") 
         || listFile[i].getName().endsWith(".jpg") 
         || listFile[i].getName().endsWith(".jpeg") 
         || listFile[i].getName().endsWith(".gif")) 

       { 
        fileList.add(listFile[i]); 
       } 
      } 

     } 
    } 
    return fileList; 
} 

}

+0

Dieser Code funktioniert Gut, ich habe es auf Emulator mit API 23 getestet. Überprüfen Sie, ob Sie READ_EXTERNAL_STORAGE Erlaubnis angefordert haben. –

Antwort

0

Sie das Hinzufügen sind Verzeichnis zu der Dateiliste in der Methode getfiles(), so dass die Dateigröße 0 ist. Machen Sie eine kleine Änderung, entfernen Sie einfach das fileList.add(listFile[i]); von Ihrer Methode getfiles() Ich hoffe, es wird funktionieren

+0

Vielen Dank Es funktioniert, aber ich kann keine Unterordner aus dieser Liste öffnen – Mounika

Verwandte Themen