2011-06-29 137 views
0

我想從SD卡上讀取所有的音樂文件,但我試圖把文件放在SD卡上的幾個地方,程序仍然沒有找到卡上的音樂。有任何建議嗎?究竟在哪裏放置文件?android模擬器SD卡

回答

0

我只是做昨晚:)。

在android中,sdcard安裝在'/ sdcard'上。我沒有這裏的代碼,但它是這樣的。

public List<String> getMp3Files() { 
    File sdcard = new File("/sdcard"); 
    return getMp3Files(sdcard); 
} 

private List<String> getMp3Files(File directory) { 
    List<String> mp3files = new ArrayList<String>(); 

    File[] files = directory.listFiles(); 
    if(files == null) { 
     return Collections.EMPTY_LIST; 
    } 

    for(File file : files) { 
     if(file.isFile() && file.getName().toLowerCase().endsWith(".mp3")) { 
      mp3files.add(file.getAbsolutePath()); 
     } else if (file.isDirectory()) { 
      mp3files.addAll(getMp3Files(file)); 
     } 
    } 

    return mp3files; 
} 

它並沒有針對移動設備進行優化,但它的工作原理。並且要小心,如果您從根文件夾開始運行此代碼,它將以無限循環的文件夾結束! (你可以試試:D)。

+0

我的問題是我不能把mp3文件放在模擬器的SD卡上。當我使用DDMS時,我有3個目錄數據,mnt和系統。 – szilard

+0

它只允許我複製數據目錄中的東西,但無論我複製它,程序都不會看到它 – szilard

+0

對不起,我很困惑:)。在DDMS中,SD卡在/ mnt/sdcard中。我昨天發現的一件事情是,如果文件大於幾MB,通常文件傳輸失敗,並且傳輸一些mp3文件的唯一方法是將它們從資源管理器拖到DDMS。如果我試圖通過DDMS或adb推送,文件傳輸將失敗。 – Augusto