2011-11-12 182 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

相关问题