2011-11-12 180 views
1

即時通訊新的Android開發,所以請原諒我,如果這是一件容易的事情。如何列出目錄中的文件?

我想獲得SD卡上的目錄中的所有文件,並顯示在一個微調,但我只是不能解決如何。 這是我的,我甚至不知道它是否有任何好處。

//creates this directory if its not there??  
File sd = new File("/sdcard/myfolder"); 

       //gets a list of the files 
       File[] sdDirList = sd.listFiles(); 

       //add them to the spinner array (this makes it crash) 
       for(int i=0;i<sdDirList.length;i++) 
       array_spinnerLoad[i] = sdDirList[i].getName(); 

因此,我哪裏錯了? 任何有用的鏈接到一個易於使用的教​​程在任何地方? 它不必須是微調,只是一些名單,我可以選擇

謝謝:)

編輯: 它不崩潰與此,但微調陣列未填充

File[] sdDirList = sd.listFiles(); 
      if (sdDirList != null) 
      { 
       array_spinnerLoad=new String[sdDirList.length]; 

      for(int i=0;i<sdDirList.length;i++) 

      array_spinnerLoad[i] = sdDirList[i].getName(); 
     } 
+1

小提示*(不知道它的問題在這裏,只是在一般情況下)*:不要硬編碼路徑到SD卡之類的東西 - 因爲這些路徑在不同的設備上有所不同。改用['Environment.getExternalStorageDirectory()'](http://developer.android.com/reference/android/os/Environment.html#getExternalStorageDirectory())。它將返回一個有效的路徑到每個設備上的主要海量存儲。 – 2011-11-12 23:25:53

+0

是的空指針異常 – user1033558

回答

4

如果/sdcard/myfolder不存在或不是目錄,則listFiles返回null。你可能會碰到NPE。您可以使用exists()isDirectory()來診斷問題。 (另外,你可以測試那個sdDirList != null。)

P.S.這將有助於您獲得更準確的答案,以發佈有關崩潰的詳細信息 - 例外情況。

+0

好的,謝謝,因爲我說我新來這個。 logcat說它的這一行array_spinnerLoad [i] = sdDirList [i] .getName();創建一個nullpointerexeption – user1033558

+0

@ user1033558 - 這就是如果sdDirList'爲null會發生什麼 - 你試圖訪問一個不存在的數組的第一個元素。 (這也會發生,如果'sdDirList'具有'null'作爲第一個元素,但'listFiles'不會返回'null'值在數組中。) –

+0

謝謝泰德,我手動把文件放在目錄中,仍然是theres空空如也。認爲我需要一個教程,但havnt發現1我明白了。 – user1033558

相關問題