2013-03-26 66 views
0

在我的應用程序中,當用戶想要上傳音頻時,該用戶應該只能選擇.mp3擴展名文件。如果用戶選擇其他文件,如.ppt,.pdf,則不允許。如何從整個SD卡中只選擇.mp3擴展文件

我有這個批准的代碼從SD卡的文件探索:Choose file dialog
但我只想要.mp3擴展名文件或.mp3擴展名文件列表。

那我該怎麼辦?

+0

,當我與存儲在我的資產很多文件(文件類型的不同以及)工作文件夾,選擇與我使用dyanamically得到名稱,並在名稱末尾附加」 .MP3" 特定名稱的MP3文件。所以這種方法爲我工作。 getAssets()。openFd(audioName +「.mp3」); 類似的東西可以爲你工作,尊重存儲在SD卡中的資源。 – 2013-03-26 10:24:53

+0

您是否嘗試過您提供的鏈接的接受答案?它似乎滿足您的需求相當好 – nicopico 2013-03-26 10:28:25

+0

嗨.. nicopico ..是的,我做了..但我只想要.mp3文件..或者用戶只能選擇.mp3文件或從SD卡獲取所有.mp3文件列表時用戶想要附加並上傳。 – CKnDROID 2013-03-26 10:44:47

回答

1

也許你可以檢查文件,這樣

File f = new File("/sdcard/"); 
for (File file : f.listFiles()) 
{ 
    if(file.getName().endsWith(".mp3")) 
    { 
     // do something with them, add them to list or whatever 
    } 
} 
+0

Thanx Marko Niciforovic ...我已經解決了我的解決方案..! :) – CKnDROID 2013-03-26 11:12:18

+0

沒問題,很高興如果我的回答有點幫助:) – 2013-03-26 11:13:28

1

檢查文件模式,然後進行比較,如果是MP3然後添加到ArrayList中,檢查以下函數,該函數將返回mp3名單。

 Vector<String> mStrings =new Vector<String>(); 
int mTotalimage=0; 
public void fileExtension(File dir) { 
     String mp3Pattern = ".mp3"; 


     File listFile[] = dir.listFiles(); 
      if (listFile != null) { 
       for (int i = 0; i < listFile.length; i++) { 
        String mCheck=listFile[i].getAbsoluteFile().toString(); 
        mCheck=mCheck.substring(mCheck.lastIndexOf("/")+1); 
    System.out.println("listFile[i].getAbsoluteFile().toString()"+listFile[i].getAbsoluteFile().toString()); 
    System.out.println("mCheck..."+mCheck); 
        if (listFile[i].isDirectory() && !(mCheck.startsWith("."))) { 
         fileExtension(listFile[i]); 
        } else { 

         //fetch jpg from folders. 
         if (listFile[i].getName().endsWith(mp3Pattern)){ 
          mStrings.add(listFile[i].getAbsolutePath().toString()); 
          mTotalimage++; 
         //fetch png image from folders. 
         } 
        } 
       } 
      } 
      System.out.println("size on return......."+mStrings.size()); 
     } 
+0

Thanx RobinHood,從你的上面的代碼我已經解決了我的問題。我只是輕微改變了一行: return(sel.isDirectory()|| filename.endsWith(「。mp3」)); 我也理解你的代碼。Thanx爲了給出新的想法。 :) – CKnDROID 2013-03-26 11:13:50