2013-12-19 41 views
1

我正在爲android手機(Nexus 5)製作應用程序。我希望我的應用能夠訪問已經存在的名爲「音樂」的文件夾,與通過USB連接時拖放音樂文件的音樂文件夾相同。Android文件結構:如何訪問存儲的MP3文件?

的途徑在我的Windows 7電腦是:「計算機\的Nexus 5 \內置存儲器\音樂」

它說,在Windows路徑的內部存儲,但在編程爲Android而言是這樣的內部或外部存儲?這可能看起來像一個愚蠢的問題,但從我讀的音樂文件夾不應該是一個特定於應用程序的文件夾。

這使我問,爲什麼我一直得到了allFiles空指針,當我使用此代碼:

File file = Environment.getExternalStorageDirectory(); 
File[] allFiles = file.listFiles(); 

String path = Environment.getExternalStorageDirectory().toString(); 
File yourDir = new File(path) ;  
File allFiles[] = yourDir.listFiles(); 

File musicDirectory = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_MUSIC); 
File[] allFiles = musicDirectory.listFiles(); 

這只是三種不同的方式來做同樣的事情,除了前兩個不直接進入音樂文件夾。

我對Android的文件結構等沒有經驗,也不熟悉,所以如果你能回答你喜歡你說話的白癡,我會永遠感激!

回答

0

您在Android條款中看到的音樂文件夾是External。

 
File musicDirectory = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_MUSIC); 
File[] allFiles = musicDirectory.listFiles(); 

這應該是理想的工作。你可以檢查它返回的絕對路徑。然後,查看該文件夾是否有任何文件。

String t = Environment.getExternalStoragePublicDirectory(
       Environment.DIRECTORY_MUSIC).getAbsolutePath(); 
System.out.println(t); 

File f = new File(t); 
File[] fs = f.listFiles(); 
for(int i=0;i<fs.length;i++){ 
    System.out.println(fs[i].getAbsolutePath()); 
}