public static File getFile(){
File file = Environment.getExternalStorageDirectory();
List<File> listFile = new ArrayList();
getFileNamesByDir(file,listFile);
return listFile.get(0);//方便测试
}
public static void getFileNamesByDir(File dir,List<File> listFile){
File[] files = dir.listFiles(new XmlFileFilter());//取xml文件
for(File file:files){
if(file.isDirectory()){
getFileNamesByDir(file,listFile);
}else{
listFile.add(file);
}
}
}
上面是在activity中。正常public void fileList(File dir,List<Map> files){
File[] arr_file = dir.listFiles(new XmlFileFilter());
for(File file:arr_file){
if(file.isDirectory()){
fileList(file,files);
}else{
Map map = new HashMap();
map.put(ParamAttr.FILENAME, file.getName());
map.put(ParamAttr.FILEPATH,file.getPath());
files.add(map);
}
}
}这个是写在fileHelper中,在activity中调用的时候就会报错。

解决方案 »

  1.   

    不局限于Activity,而是要有Context.
      

  2.   

    不局限于Activity,而是要有Context.
    [/Quote]
      

  3.   

    操作文件纯JAVA都可以操作,不需要Context
    我观查到的原因可能是listFile这个对象不能一边遍历,一边添加数据,报错的原因应该是listFile内部错误
      

  4.   

    这个要有Context是什么意思?
         是说我的这个类要继承Context的吗?
      

  5.   

      files是一个list   里面放的是我要返回的信息。
      

  6.   

    主要的区别 就是 因为Context(环境) 在activity中 有这个 东西 可以 获得 你的 外设(SD)根路径 。建议 在 java类中 不要 用 File dir作参数  直接传个 String(path)保证 通过 !
      

  7.   

    如果我要在fileHelper中加入Context该怎么做?
      

  8.   

    没有错误,就是运行应用的时候,直接不能启动,说我的com.joker出现问题,然后就是强制关闭
      

  9.   

    可以在FileHelper类中声明构造函数:public FileHelper(Context context){
       this.mContext=context;
    }