void initFile(){
try{
//获取pic目录下所有文件名,存放在tmp临时数组里。
                        String dirName = "/mnt/sdcard/pic/";
Log.i("Log:","------------->"+dirName);
File file = new File(dirName);
String[] tmp = file.list();
lengthOfTmp = file.list().length;
//测试用的
Toast.makeText(this, lengthOfTmp, 3000).show();
Toast.makeText(this, tmp[0].substring(tmp[0].length()-4, tmp[0].length()), 3000).show();
Toast.makeText(this, tmp[1].substring(tmp[1].length()-4, tmp[1].length()), 3000).show();
//取得图片文件
for( int i=0;i<lengthOfTmp; i++ ){
//取文件名的后4位,即文件类型
// Toast.makeText(this, "it's OK.", 3000).show();
String endOfTmp = tmp[i].substring(tmp[i].length()-4, tmp[i].length());
if(endOfTmp.equals(".png") || endOfTmp.equals(".jpg") ||
endOfTmp.equals(".gif") ||endOfTmp.equals(".bmp"))
filenames[i] = tmp[i];
}
// Toast.makeText(this, filenames.length, 3000).show();
}catch(Exception e){
Toast.makeText(this, "error!!!!", 3000).show();
filenames = null;
}
}只要用到 file.list().length ,
就一直报空指针异常  怎么办额。。

解决方案 »

  1.   

    File file = new File(dirName);
    String[] tmp = file.list();  使用file.list()出错,因为file不存在,所以空指针。请确定/mnt/sdcard/pic/目录存在。
    个人测试 /mnt/sdcard/  这个是true的。
      

  2.   

    /mnt/sdcard/pic/
    我确定这个目录是存在的“使用file.list()出错,因为file不存在,所以空指针”
    为神马file不存在呢??  我在上面不是新建了对象引用了么 。。   File file = new File(dirName);
      

  3.   

     String endOfTmp = tmp[i].substring(tmp[i].length()-4, tmp[i].length());look into this statement
      

  4.   

    lz 你用下方法 listFiles() ,试试。
     file.listFiles();
      

  5.   


    可能是file.list() 的返回值是null啊  然后调用file.list().length就出错了也就是你那个文件夹是空的