2010-09-15 6 views
7

मैं एक प्री-सेट फ़ाइल को पढ़ने और लिखने में खुश हूं, और मैन्युअल रूप से एक सूचीदृश्य पॉप्युलेट कर सकता हूं, लेकिन मुझे आशा है कि एक आधिकारिक (या नहीं) फ़ाइलब्रोसर मैं चूक गया हूं, या उपयोगकर्ता को प्रस्तुत करने के लिए अन्य सुरुचिपूर्ण समाधान एक निर्देशिका सूची, और उन्हें एक फ़ाइल का चयन करने दें। ListView को बाह्य संग्रहण से एंड्रॉयड में सभी संगीत फ़ाइलों या दस्तावेज़ों फ़ाइलें हों या वीडियो फ़ाइलें, चित्र, लिस्टिंग:एसडी कार्ड से (निर्देशिका पर) फ़ाइलों की सूची प्राप्त करने का एक अच्छा तरीका क्या है?

+0

अनुसार क्रमबद्ध स्ट्रिंग मूल्यों को बदल! मुझे आवश्यक आदेश थे: path.list(); path.listFiles(); और dialog.setItems (पथसूची); - सूचीदृश्य की भी आवश्यकता नहीं थी :) – Chozabu

उत्तर

18
final String state = Environment.getExternalStorageState(); 
if (Environment.MEDIA_MOUNTED.equals(state)) { 
File[] files = Environment.getExternalStorageDirectory().listFiles(); 
} else { 
... 
} 
+1

अच्छा लग रहा है! मैं इसे जाने दूंगा! – Chozabu

+1

कोड में एक टाइपो मिला, अन्यथा यह संकलित नहीं होगा: फ़ाइलें [] फ़ाइलें = ... -> फ़ाइल [] फ़ाइलें = ... – Minsky

+2

एक विधि '.list()' भी है जो केवल फ़ाइल नाम देता है , इसलिए सभी फ़ाइल ऑब्जेक्ट्स प्राप्त करना आवश्यक नहीं है। – Micer

17
File fileList = new File("/sdcard"); 
if (fileList != null){ 
    File[] filenames = fileList.listFiles(); 
     for (File tmpf : filenames){ 
      //Do something with the files 
     } 
    } 
} 

किसी अन्य विधि तुम कोशिश कर सकते

+3

ऐसा लगता है कि यह काम करते हैं, लेकिन यह फ़ाइल FileList = नई फ़ाइल ("/ sdcard") से अधिक Environment.getExternalStorageDirectory() उपयोग करने के लिए बेहतर है; यदि इसे "एसडीकार्ड" के अलावा कुछ और कहा जाता है – Chozabu

0

कोड है।

ArrayList<String> filenames; 
ArrayAdapter<String> adapter; 

// onCreate विधि

songlist = findViewById(R.id.songlist); //songlist is ListView widget 
    filenames = new ArrayList<>(); 
    getMusic();   // music files funtions 
    adapter=new ArrayAdapter<>(YourActivity.this, android.R.layout.simple_list_item_1, filenames); 
    songlist.setAdapter(adapter); 

// getMusic() बाह्य संग्रहण से हो रही है और सभी संगीत फ़ाइलें छानने के लिए विधि है

private void getMusic() { 

    File path = Environment.getExternalStorageDirectory(); 
    String filename ; 
    Queue<File> files = new LinkedList<>();   //Linklist 

    files.addAll(Arrays.asList(path.listFiles())); //adding all files of path in linklist 

    while (!files.isEmpty()){ 
     File file = files.remove(); 
     if (file.isDirectory()){ 
      files.addAll(Arrays.asList(file.listFiles())); 


     } 
     else if (file.getName().endsWith(".mp3")){ //filtering files 
      filename = file.getName();    // according to their extension 
      filenames.add(filename);    //filenames is string ListArray 

     } 
     else if (file.getName().endsWith(".ogg")){ 
      filename = file.getName(); 
      filenames.add(filename); 
     } 
     else if (file.getName().endsWith(".amr")){ 
      filename = file.getName(); 
      filenames.add(filename); 
     } 
     else if (file.getName().endsWith(".wav")){ 
      filename = file.getName(); 
      filenames.add(filename); 
     } 
     else if (file.getName().endsWith(".wma")){ 
      filename = file.getName(); 
      filenames.add(filename); 
     } 
     else if (file.getName().endsWith(".flac")){ 
      filename = file.getName(); 
      filenames.add(filename); 
     } 


    } 


} 

जैसे (.mp3, .wav) को .your_file_extension

संबंधित मुद्दे